Vetores e listas – índice, inserir, remover e percorrer

ComputaçãoAlgoritmos e resolução de problemasIdades 15–16

Carregando…

Usar com minha turma ✨ Personalizar com IA Relatar um problema

Uma lista aparece como células com índice e um ponteiro. Os estudantes leem, escrevem, acrescentam no fim, inserem e removem elementos e veem os elementos se deslocarem, o tamanho mudar e os erros de índice fora do intervalo aparecerem; depois trocam para um vetor de tamanho fixo para comparar com uma lista dinâmica. Um modo de matriz 2D percorre passo a passo por linhas ou por colunas com grid[r][c], um modo dicionário busca valores pela chave e um modo de referências mostra dois nomes apontando para a mesma lista. Cada operação aparece em Python, Java ou pseudocódigo.

Aula: Vetores e listas: índices, inserção, remoção e percurso

O que mostra

Um vetor guarda os elementos em posições numeradas, então qualquer elemento é lido ou alterado em um único passo pelo índice. Inserir ou remover no meio é mais lento, porque todos os elementos seguintes precisam se deslocar; o contador de movimentos deixa esse custo visível. Uma lista dinâmica cresce quando precisa, enquanto um vetor de tamanho fixo mantém o tamanho e precisa de um contador das posições em uso. O simulador também traz matrizes 2D percorridas com laços aninhados, dicionários que buscam pela chave e referências: depois de b = a, os dois nomes apontam para a mesma lista.

Como usar

Escolha um Modo e uma Notação. No modo Lista, digite um Índice e um Valor e clique em uma operação como nums.insert(2, 15) para ver os elementos se deslocarem; tente um índice além do fim para ver o erro. Mude a Estrutura para Vetor de tamanho fixo para inserir e remover à mão. No modo Matriz 2D, escolha a Ordem de percurso e clique em Passo. Experimente também os modos Dicionário e Referências.

Parâmetros que você pode mudar

  • Modo Lista / vetor 1D, Matriz 2D, Dicionário (chave → valor), Referências e alias
  • Estrutura 1D Lista dinâmica (list, ArrayList), Vetor de tamanho fixo (10)
  • Notação do código Python, Java, Pseudocódigo
  • Número inicial de elementos 3–10
  • Linhas da matriz 2D 2–6
  • Colunas da matriz 2D 2–8
  • Velocidade da animação 1–5 passos/s

Perguntas para explorar

  1. Quantos elementos precisam se mover quando um valor é inserido no início de uma lista de 10 elementos?
  2. Por que nums[len(nums)] dá erro em Python e nums[-1] não?
  3. Depois de b = a, por que mudar b[0] também muda a, e como você pode evitar isso?