Estruturas de Dados: Conceitos, TADs e Implementações

Classificado em Computação

Escrito em em português com um tamanho de 3,55 KB

Tipos de Dados e Abstratos

Tipo de Dado

Define o conjunto de valores que uma variável pode assumir e as operações sobre esses valores. Ex.: Int, Double, Char.

Tipo Abstrato de Dados (TAD)

Define o conjunto de valores e as operações sobre os valores, mas não define sua implementação. Ex.: Lista, Pilha, Fila e Árvore.

Exemplos de Tipos Abstratos de Dados (TADs)

  • Lista: Conjunto de itens interligados cujas operações de inserção e remoção podem ser feitas em qualquer parte da lista.
  • Pilha: Conjunto de itens interligados cujas operações de inserção e remoção só podem ser feitas no topo da pilha (LIFO - Last In, First Out).
  • Fila: Conjunto de itens interligados cuja operação de inserção é feita no final da fila e a operação de remoção é feita no início da fila (FIFO - First In, First Out).
  • Árvore: Conjunto de itens interligados na qual cada item tem um ou mais itens associados a ele. Uma árvore contém um nó chamado raiz que está ligado a um conjunto finito de subárvores.

Estrutura de Dados

É uma maneira particular de se implementar um Tipo Abstrato de Dados (TAD). Ex.: Sequencial, Encadeada.

Tipos de Implementação de Estruturas

  • Estrutura Sequencial

    Cada item é armazenado em posições contíguas da memória. O tamanho da estrutura deve ser definido na sua criação, e qualquer item pode ser acessado diretamente.

    • Pontos Positivos: Facilidade de acesso a cada item, baixo custo para inserção no final dos itens.
    • Pontos Negativos: Alto custo para inserir ou remover itens no caso de implicar em deslocamento de outros itens. O tamanho fixo pode implicar em falta de espaço.
  • Estrutura Encadeada

    Cada item é encadeado por um ponteiro que aponta para o item seguinte da estrutura, permitindo armazenamento em posições não contíguas de memória.

    • Pontos Positivos: Não há desperdício de memória, pois a memória alocada pela estrutura é aquela utilizada pelos itens. O custo é baixo para inserir e remover itens.
    • Ponto Negativo: Custo alto para acessar um determinado item, pois implica em passar por todos os itens que o precedem na estrutura.

Vetor (Array)

É uma estrutura de dados composta que pode armazenar somente valores do mesmo tipo ou objetos da mesma classe. Tem sua capacidade definida na criação.

Método que retorna a quantidade de elementos preenchidos no vetor:


public int quantidadeElementos(int[] vetor) {
    int i;
    int total = 0;
    // Nota: 'n' deve ser o tamanho lógico do vetor ou vetor.length
    for (i = 0; i < n; i++) {
        // Assumindo que 0 representa uma posição vazia
        if (vetor[i] != 0) {
            total++; // Corrigido para contar a quantidade, não somar o valor
        }
    }
    return total;
}

Método que retorna o maior valor armazenado no vetor:


public int obterMaior(int[] vetor) {
    int i;
    // Nota: Inicialização com 0 pode falhar se todos os valores forem negativos.
    int maiorValor = 0;

    // Nota: 'n' deve ser o tamanho lógico do vetor ou vetor.length
    for (i = 0; i < n; i++) {
        if (vetor[i] > maiorValor) {
            maiorValor = vetor[i];
        }
    }
    return maiorValor;
}

Entradas relacionadas: