Capítulo 2 de 3
Estruturas de Dados e Algorítmos
O campo de Estruturas de Dados e Algorítmos consiste em encontrar formas organizadas de armazenar e organizar informações na memória de um computador para que possam ser acessadas e manipuladas de maneira eficiente com os devidos algoritmos.
Algoritmos
Algoritmos são sequências finitas de passos bem definidos que resolvem um problema ou executam uma tarefa. Toda receita lógica - buscar um nome em uma lista, ordenar números do menor para o maior, encontrar o caminho mais curto entre dois pontos - é um algoritmo.
Os algoritmos mais utilizados nos tempos atuais são os algoritmos de busca, algoritmos de ordenação (sorting) e - principalmente em entrevistas - o de percurso em grafos.
Os algoritmos consistem extensivamente da manipulação do que chamamos de estruturas de dados.
Estruturas de Dados
Estas são formas de organizar dados e armazená-los de uma forma lógica e concisa. Cada estrutura tem regras próprias sobre como os dados entram, saem, são acessados e relacionados entre si.
Algumas das estruturas que veremos são:
Array (ou lista) — uma sequência ordenada de elementos acessíveis por índice.
Pilha (stack) — entra e sai pelo topo (LIFO: Last In, First Out).
Fila (queue) — entra pelo fim, sai pelo começo (FIFO: First In, First Out).
Lista ligada (linked list) — cada elemento aponta para o próximo.
Árvore — elementos organizados em hierarquia (pai/filho).
Tabela hash (hash map / dicionário) — pares chave-valor com acesso quase instantâneo.
Grafo — elementos (nós) conectados por relações (arestas).
