Uma estrutura de dados é uma forma de organizar informação na memória para que a possas usar com eficiência. Escolher a estrutura certa pode tornar um programa simples e rápido; escolher a errada pode torná-lo lento e confuso. Estas são as mais importantes para quem estuda informática.
Porque interessam
Imagina uma biblioteca. Se os livros estiverem empilhados ao acaso, encontrar um título demora. Se estiverem ordenados por autor, é rápido. As estruturas de dados são as "estantes" dos programas, e combinam com os algoritmos que as usam.
Arrays e listas
Guardam vários elementos numa sequência, acedidos por posição (índice, que normalmente começa em 0).
notas = [12, 15, 17, 9]
print(notas[0]) # 12
notas.append(14) # adiciona no fim
print(len(notas)) # 5- Acesso por posição é muito rápido.
- Inserir ou remover no meio obriga a deslocar elementos.
- Ideais quando tens uma coleção ordenada e acedes por índice.
Dicionários (mapas, tabelas de dispersão)
Guardam pares chave → valor e permitem encontrar um valor pela chave quase instantaneamente.
preco = {"caderno": 800, "caneta": 150, "mochila": 12000}
print(preco["caneta"]) # 150
preco["lápis"] = 90Usa dicionários para fichas (um aluno, um produto), contagens (quantas vezes aparece cada palavra) e pesquisas por nome.
Conjuntos (sets)
Guardam elementos sem repetição, úteis para eliminar duplicados e comparar grupos:
a = {1, 2, 3, 3, 2}
print(a) # {1, 2, 3}
b = {2, 3, 4}
print(a & b) # interseção: {2, 3}Pilhas (stack)
Funcionam como uma pilha de pratos: o último a entrar é o primeiro a sair (LIFO).
pilha = []
pilha.append("A")
pilha.append("B")
pilha.append("C")
print(pilha.pop()) # CExemplos reais: o botão "desfazer" de um editor, o histórico de páginas do navegador e a verificação de parênteses numa expressão.
Filas (queue)
Funcionam como uma fila de pessoas: o primeiro a entrar é o primeiro a sair (FIFO).
from collections import deque
fila = deque()
fila.append("Ana")
fila.append("Pedro")
print(fila.popleft()) # AnaExemplos reais: pedidos de impressão, atendimento de clientes e tarefas por processar.
Listas ligadas
Cada elemento guarda o valor e uma referência ao seguinte. Inserir e remover é fácil, mas aceder à posição 500 obriga a percorrer os anteriores. Aprende-se nas disciplinas de estruturas de dados porque ajuda a perceber como a memória funciona.
Árvores e grafos (um olhar rápido)
- Árvore: elementos organizados de forma hierárquica (como as pastas de um computador). A árvore binária de pesquisa permite pesquisar de forma muito eficiente.
- Grafo: elementos (nós) ligados por relações (arestas), como uma rede social ou um mapa de estradas.
São temas para mais tarde, mas convém saber que existem.
Como escolher
| Preciso de… | Estrutura |
|---|---|
| Sequência ordenada, acesso por posição | Lista / array |
| Procurar por nome ou código | Dicionário |
| Sem repetições | Conjunto |
| Desfazer / voltar atrás | Pilha |
| Atender por ordem de chegada | Fila |
Dica de estudo
Para cada estrutura, faz três coisas: escreve um exemplo seu, resolve um problema com ela e explica a um colega (ou a ti em voz alta) quando a usarias. Treina também com exercícios de lógica. Se estás num curso de informática e precisas de ajuda, temos aulas básicas de informática.
Perguntas frequentes
Array e lista são a mesma coisa?
Em Python, as listas fazem o papel dos arrays e são mais flexíveis. Noutras linguagens, os arrays têm tamanho fixo e as listas podem crescer.
Qual a estrutura mais usada?
Listas e dicionários, de longe, na maioria dos programas do dia a dia.
Preciso de saber isto para trabalhar com web?
Precisas do básico. As estruturas avançadas aparecem mais em entrevistas técnicas e em problemas de desempenho.




