Buscar

Estrutura de dados homogêneas do tipo vetor em Python

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Estrutura de dados homogêneas do tipo vetor em Python
Desafio
Uma lista circular é um caso especial de lista encadeada, ou seja, é uma lista em que os elementos estão conectados. Assim, o último elemento da lista aponta para o primeiro elemento. Listas circulares são úteis em aplicativos para percorrer a lista repetidamente. Por exemplo, quando vários aplicativos estão sendo executados em um computador, é comum o sistema operacional colocar esses aplicativos em uma lista. Depois percorrê-los, dando a cada um deles um determinado tempo para serem executados e, em seguida, fazendo-os esperar enquanto o processador está sendo ocupado por outro aplicativo.
Suponha que você atue em uma empresa de desenvolvimento de jogos.
Analise o problema e responda: qual código deve ser colocado na linha demarcada com # ...?
O código que deve ser colocado na linha demarcada com # ... é:
return jogadas[indice % len(jogadas)]
O comprimento da lista de jogadas é 3. Então, se for usado o operador "resto" entre o índice e o comprimento da lista, teremos:
(0 % 3) é 0, e índice 0 é a posição do item Pedra na lista de jogadas.
(1 % 3) é 1, e índice 1 é a posição do item Papel na lista de jogadas.
(2 % 3) é 2, e índice 2 é a posição do item Tesoura na lista de jogadas.
(3 % 3) é 0, e índice 0 é a posição do item Pedra na lista de jogadas.
(4 % 3) é 1, e índice 1 é a posição do item Papel na lista de jogadas.
(5 % 3) é 2, e índice 2 é a posição do item Tesoura na lista de jogadas.
(6 % 3) é 0, e índice 0 é a posição do item Pedra na lista de jogadas.
(7 % 3) é 1, e índice 1 é a posição do item Papel na lista de jogadas.
(8 % 3) é 2, e índice 2 é a posição do item Tesoura na lista de jogadas.
E assim sucessivamente.
Exercícios
1. 
Uma lista Python tem algumas características peculiares. Quais das seguintes alternativas são verdadeiras para as características de listas em Python?
. 
Um determinado objeto pode aparecer em uma lista mais de uma vez.
Uma lista é uma coleção ordenada de objetos. A ordem dos elementos importa, pois é uma característica inata da lista. Uma lista pode conter qualquer número de elementos (limitados pela memória do computador, é claro), e de qualquer tipo. O mesmo objeto pode ocorrer várias vezes.
. 
Considere a seguinte definição de lista:
a = ['a', 'b', 'c', 'd', 'e', 'f']
As alternativas a seguir são instruções Python com notação de fatiamento de lista. Qual exibe a saída correta?
B. 
print( a[ -5:-3 ] ) # Saída: ['b', 'c'].
Levando em conta os índices positivos e negativos da lista apresentada, as saídas corretas para as alternativas são:
print( a[ 4:-2 ] ) # Saída: []
print( a[-5:-3] ) # Saída: ['b', 'c']
print( max( a[ 2:4 ] + [ 'g' ] ) ) # Saída: g
print( a[ -6 ] ) # Saída: a
print( a[ : ] is a ) # Saída: False
3. 
Listas em Python também podem ser usadas para implementar o comportamento de pilhas. LIFO é o comportamento de uma pilha em que o último elemento a ser colocado na pilha é o primeiro elemento que deve sair da pilha. Levando em conta esse comportamento e a pilha a seguir, qual método de lista Python pode ser usado para remover o elemento ( '5' ) do topo da pilha, sem ter que conhecer o índice ou o valor do elemento?
a = [ '1', '2', '3', '4', '5' ]
C. 
a.pop().
Enquanto o método append() adiciona um elemento no topo da pilha, o método da classe list, que pode remover o último elemento da pilha sem ter que conhecer o índice ou o valor do elemento, é o pop(). Em contrapartida, para o método remove() e a instrução del, é necessário saber o índice ou o valor do elemento. Por fim, o método clear() esvazia a pilha.
4. 
Listas em Python também servem para implementar o comportamento FIFO em que o primeiro elemento a entrar na fila é o primeiro a sair. Levando em conta a fila a seguir, o que ocorre com os outros elementos e índices quando o primeiro elemento da fila é removido?
a = [ 'a', 'b', 'c', 'd', 'e', 'f' ]
a.pop( 0 )
D. 
Cada elemento restante será movido para a posição anterior e o último índice é removido.
Quando o primeiro elemento da fila é removido, cada elemento restante da fila é movido para o índice anterior. Por fim, o índice do último elemento ficará sem valor, então, ele é removido.
5. 
Qual é o nome da classe pertencente ao módulo collections e que pode ser usada, alternativamente, para implementar pilhas e filas com performance melhor do que usar os métodos da biblioteca padrão do Python?
E. 
deque.
O nome da classe pertencente ao módulo collections que pode ser usada, alternativamente, para implementar pilhas e filas com performance melhor do que usar os métodos da biblioteca padrão do Python é a classe deque. O import da classe fica assim:
from collections import deque.

Continue navegando