Estrutura de dados
São estruturas organizadas de dados na memória (volátil) de um computador ou qualquer dispositivo de armazenamento, de forma que os dados possam ser usados e manipulados da forma correta.
Principais estruturas de dados
Vetor (Array)
Estrutura uni-dimensional e indexada que armazena dados do mesmo tipo, possui tamanho fixo e a indexação sempre inicia em zero e seus campos podem ser acessados por meio do índice.
Matriz (Array)
Estrutura multi-dimensional e indexada que armazena dados do mesmo tipo, possui tamanho fixo e a indexação sempre inicia em zero e seus campos podem ser acessados por meio do índice.
Em outras palavras, é um vetor de vetores, ou seja, um vetor que possui duas ou mais dimensões.
Registro (Record)
Estrutura especializada que armazena dados de tipos diferentes.
Toda estrutura de registro deve ser nomeada, e seus campos podem ser acessados por meio do operador (.) ponto.
Ex: Objetos: book.author, book.title, book.price, etc.
Lista (List)
Estrutura que armazena dados de determinado tipo em uma ordem especifica e possui tamanho variável.
Existem dois tipos de listas:
- Estruturas ligadas
Estrutura unidirecional onde os dados são ligados uns aos outros através de nós e cada nó conhece somente o seu próprio valor e o valor do próximo nó.
A lista anda somente para frente.
- Estruturas duplamente ligadas
Estrutura bidirecional onde os dados são ligados uns aos outros através de nós e cada nó conhece somente o seu próprio valor, o valor do nó anterior e o valor do próximo nó.
A lista anda para trás e para frente.
Pilha (Stack)
Estrutura que armazena dados de tipos diferentes e serve como uma coleção de elementos onde somente um item da lista pode ser lido ou removido por vez.
Existem dois tipos de pilhas:
- LIFO ou UEPS
Estrutura LIFO (Last in first out) ou UEPS (Último que entra, primeiro que sai), apresenta o seguinte critério: O primeiro elemento a ser retirado é o último que foi inserido.
- FIFO ou PEPS
Estrutura FIFO (First in first out) ou PEPS (Primeiro que entra, primeiro que sai) apresenta o seguinte critério: O primeiro elemento a ser retirado é o primeiro que foi inserido.
Operações: push é inserir e pop remover elementos da pilha.
Fila (Queue)
Estrutura FIFO (First in first out) ou PEPS (Primeiro que entra, primeiro que sai).
Inserção sempre a direita e remoção sempre a esquerda.
Árvore (Tree)
Estrutura que organiza os dados de forma hierárquica.
Sempre vai existir o elemento raiz que inicia a árvore, e a partir dele existem as ramificações com os elementos subordinados, chamados de nós ou folhas. A pesquisa é realizada passando nó por nó até chegar ao nó desejado.
Tabela Hash (Hash Table)
Estrutura de dispersão ou espelhamento, associação de valores à chaves.
É uma generalização da ideia de array, usa uma função denominada Hashing para espalhar os dados de forma não ordenada dentro do "array" que define a tabela.
- Valor: Posição ou índice onde o elemento se encontra.
- Chave: Parte da informação que compõe o elemento.
Grafos (Graph)
Estruturas complexas, não lineares e relacionais entre objetos, onde os objetos são vértices ou nós e os relacionamentos são as arestas.
Permite andar para todos os lados.