Seção 6.4–6.7 — Modificando listas e estruturas de dados clássicas
Uma das principais vantagens de trabalharmos com listas é poder adicionar novos elementos durante a execução. Para adicionar um elemento ao fim da lista, chamamos o método append:
Um programa simples capaz de ler um número indeterminado de valores e imprimi-los na mesma ordem:
Outra forma de adicionar elementos é com a operação + entre listas. O método extend adiciona todos os elementos de uma lista a outra; já append com uma lista como parâmetro adiciona a lista inteira como um único elemento:
Faça um programa que leia duas listas e que gere uma terceira com os elementos das duas primeiras.
Faça um programa que percorra duas listas e gere uma terceira sem elementos repetidos.
Como o tamanho da lista pode variar, podemos também retirar alguns elementos ou mesmo todos eles. Para isso, utilizamos a instrução del. O elemento excluído não ocupa mais lugar na lista, fazendo com que os índices sejam reorganizados:
Podemos apagar fatias inteiras de uma só vez:
Uma lista pode ser utilizada como fila (FIFO — First In First Out): a inserção é sempre realizada no fim e as remoções são feitas no início. O método pop(0) retorna o valor do primeiro elemento e o exclui da lista:
O que acontece quando não verificamos se a lista está vazia antes de chamarmos o método pop?
Altere o programa da Listagem 6.21 de forma a poder trabalhar com vários comandos digitados de uma só vez. Altere-o de forma a considerar operação como uma string. Exemplo: FFFAAAS significaria três chegadas de novos clientes, três atendimentos e, finalmente, a saída do programa.
Modifique o programa para trabalhar com duas filas. Para facilitar seu trabalho, considere o comando A para atendimento da fila 1 e B para atendimento da fila 2. O mesmo para a chegada de clientes: F para fila 1 e G para fila 2.
Uma pilha tem uma política de acesso bem definida: novos elementos são adicionados ao topo e a retirada também é feita pelo topo (LIFO — Last In First Out). O método pop(-1) retira o último elemento:
💡 Filas e pilhas são estruturas de dados fundamentais na ciência da computação. Filas (FIFO) são usadas em sistemas de impressão e atendimento. Pilhas (LIFO) são usadas em histórico de navegação e funções de desfazer.
Faça um programa que leia uma expressão com parênteses. Usando pilhas, verifique se os parênteses foram abertos e fechados na ordem correta. Exemplos: (()) OK, ()()()() OK, ()) Erro.