Qual é a diferença entre matriz e lista vinculada

Índice:

Anonim

o principal diferença entre Array e Linked List é que Array aloca memória em tempo de compilação, que é o momento de declarar o array, enquanto Linked List aloca memória em tempo de execução, que é o momento de adicionar elementos à lista vinculada.

Uma matriz é uma estrutura de dados que contém um grupo de elementos do mesmo tipo de dados. Uma matriz é predefinida. Em outras palavras, ele tem um comprimento fixo. Por outro lado, uma lista vinculada é uma estrutura de dados linear que considera cada elemento como um objeto separado. Tem um comprimento dinâmico. Portanto, é possível aumentá-lo ou diminuí-lo em tempo de execução.

Matriz, lista vinculada

O que é um Array

Uma matriz é uma estrutura de dados de tamanho fixo. Ele pode armazenar elementos do mesmo tipo. Quando existem vários elementos do mesmo tipo, não é possível armazenar cada um deles como variáveis ​​separadas. Uma matriz oferece uma alternativa para esse problema. Ele armazena todos os elementos como um único elemento. Por exemplo, salário duplo [10]; declara uma matriz chamada salário que pode armazenar 10 valores duplos. O tamanho deste array é 10. Portanto, o programador não pode armazenar mais de 10 elementos neste array.

O índice do 1st elemento na matriz é 0. Se houver 10 elementos na matriz, o índice do último elemento é 9. Todos os elementos na matriz estão em locais de memória contíguos. O endereço mais baixo corresponde ao primeiro elemento, enquanto o endereço mais alto corresponde ao último elemento. Além disso, é possível realizar operações como inserir, excluir, modificar elementos e percorrer a matriz e mesclar matrizes.

O que é uma lista vinculada

A lista vinculada é uma estrutura de dados linear que contém um grupo de nós em uma sequência. Cada nó consiste em seus próprios dados e no endereço de outro nó. Ele pode armazenar o endereço do próximo nó, ou tanto do próximo nó quanto do anterior. Os elementos estão ligados entre si e formam uma estrutura semelhante a uma cadeia. A principal vantagem de uma lista vinculada é que ela é dinâmica. Ao contrário de uma matriz, não é necessário alocar inicialmente toda a memória necessária. Em vez disso, uma lista vinculada permite alocar memória quando necessário.

Por outro lado, uma lista vinculada requer mais memória, pois armazena os endereços de outros nós. Em uma lista encadeada, não é possível acessar um elemento aleatoriamente de uma vez. O programador deve passar por cada nó sequencialmente para acessar um elemento específico. Além disso, é difícil realizar o cruzamento reverso na lista vinculada.

Diferença entre matriz e lista vinculada

Definição

Uma matriz é uma estrutura de dados que consiste em uma coleção de elementos, cada um identificado pelo índice da matriz, enquanto uma Lista Vinculada é uma coleção linear de elementos de dados cuja ordem não é fornecida por sua localização na memória. Portanto, esta é a principal diferença entre Array e Linked List.

Acessando os Elementos

Uma matriz oferece suporte a acesso aleatório. Portanto, o programador pode acessar diretamente um elemento na matriz usando o índice. A lista vinculada suporta acesso sequencial. Portanto, o programador deve passar sequencialmente por cada elemento ou nó até chegar ao elemento desejado. Portanto, esta é uma diferença importante entre Array e Linked List.

Localizações de memória

Os locais de memória são outra diferença entre Array e Linked List. Os elementos em uma matriz são armazenados em locais de memória contíguos. Por outro lado, os elementos da lista vinculada podem ser armazenados em qualquer lugar da memória. Não é necessário armazenar elementos em locais de memória contíguos.

Tamanho

Alocação de memória

Além disso, em uma matriz, a alocação de memória ocorre em tempo de compilação. É uma alocação de memória estática. No entanto, em uma lista vinculada, a alocação de memória ocorre em tempo de execução. É uma alocação de memória dinâmica. Portanto, esta é outra diferença entre Array e Linked List.

Dependência entre Elementos

Além disso, os elementos em uma matriz são independentes uns dos outros, enquanto um elemento ou nó em uma lista vinculada aponta para o próximo nó ou para o próximo nó e para o nó anterior.

Conclusão

Ambos Array e Linked List ajudam a armazenar dados linearmente. A principal diferença entre Array e Linked List é que Array aloca memória em tempo de compilação, que é o momento de declarar o array, enquanto Linked List aloca memória em tempo de execução, que é o momento de adicionar elementos à lista vinculada.

Referência:

1. “Introdução às listas vinculadas.” Tipos de topologia de rede em redes de computadores | Studytonight, disponível aqui. 2. Tipos de topologia de rede em redes de computadores | Studytonight, disponível aqui.

Cortesia de imagem:

1. “Array2” de Nenhum autor legível por máquina fornecido. Jarkko Piiroinen assumido (com base em reivindicações de direitos autorais). - Nenhuma fonte legível por máquina fornecida. Trabalho próprio assumido (com base em direitos autorais) (Domínio Público) via Commons Wikimedia 2. “CPT-LinkedLists-addnode” Por Singly_linked_list_insert_after.png: Derrick Coetzeederivative work: Pluke (falar) - Singly_linked_list_insert_after.png (Domínio Público) via Wikimedia

Qual é a diferença entre matriz e lista vinculada