Qual a diferença entre alocação sequencial e alocação encadeada?

Perguntado por: hcoutinho . Última atualização: 20 de maio de 2023
4.8 / 5 10 votos

Na alocação encadeada, é preciso que os elementos sejam alocados fisicamente na memória. Não existe diferença entre as duas maneiras de alocação. A alocação sequencial não é necessariamente alocada em sequência fisicamente.

Uma lista encadeada é uma seqüência de structs, que são os nós da lista, ligados entre si através de ponteiros. Esta seqüência pode ser acessada através de um ponteiro para o primeiro nó, que é a cabeça da lista. Cada nó contém um ponteiro que aponta para a struct que é a sua sucessora na lista.

A principal vantagem da utilização de listas encadeadas sobre listas sequenciais é o ganho em desempenho em termos de velocidade nas inclusões e remoções de elementos. Em uma lista contígua é necessário mover todos os elementos da lista para uma nova lista para realizar essas operações.

A alocação estática ocorre quando são declaradas variáveis globais ou estáticas; geralmente alocadas em Data. A alocação automática ocorre quando são declaradas variáveis locais e parâmetros de funções. O espaço para a alocação dessas variáveis é reservado quando a função é invocada, e liberado quando a função termina.

Uma estrutura seqüencial é aquela em que os comandos vão sendo executados numa seqüência pré-estabelecida, um após o outro. As estruturas de decisão permitem escolher qual o caminho a ser seguido num algoritmo em função de uma ou mais condições.

Alocação encadeada consiste em manter os arquivos, cada um, como uma lista encadeada de blocos de disco. Dessa forma uma parte de cada bloco é usada como ponteiro para o próximo bloco. O restante do bloco é usado para dados.

Uma grande desvantagem é que uma quantidade fixa de armazenamento permanece alocada para a lista, mesmo quando a estrutura estiver de fato usando uma quantidade menor ou possivelmente nenhum armazenamento.

Na alocação estática, o espaço de memória é definido durante o processo de compilação, já na alocação dinâmica o espaço de memória e reservado durante a execução do programa.

É uma lista linear na qual a ordem lógica dos elementos (a ordem “vista” pelo usuário) é a mesma ordem física (em memória principal) dos elementos.

Existem muitos tipos de listas encadeadas. Listas simples, duplamente encadeadas, circulares, com e sem sentinelas. Todas essas listas permitem criar conjuntos de dados que crescem dinamicamente.

Uma pilha pode ser implementada utilizando um vetor, se tivermos a informação do número máximo de elementos que iremos armazenar, ou utilizando uma lista encadeada quando não sabemos quantos elementos iremos armazenar.

Lista ligada ou Lista encadeada é uma estrutura de dados linear e dinâmica. Ela é composta por uma sequência de nodos ou células que contém seus dados e também uma ou duas referências ("links") que apontam para o nodo anterior ou posterior.

Exemplos de listas lineares:

  • Pessoas na fila de um banco;
  • Letras em uma palavra;
  • Relação de notas dos alunos de uma turma;
  • Itens em estoque em uma empresa;
  • Dias da semana;
  • Vagões de um trem;
  • Pilha de pratos;
  • Cartas de baralho.

listas, como o próprio nome diz são uma listagem de elementos, em que podemos acessar cada um deles independentemente dos outros, tanto para leitura quanto para modificação. Já nas pilhas e filas, não é qualquer elemento que pode ser acessado, apenas elementos específicos.

Há três estratégias básicas de alocação de arquivos nos blocos lógicos do disco, que serão apresentadas a seguir: as alocações contígua, encadeada e indexada.

substantivo feminino Ato ou resultado de alocar. Ação de destinar recursos (verbas) para uma associação ou para propósitos determinados: alocação de custos. Divisão dos elementos de produção acessíveis ou relacionados com indivíduos entre companhias (empresas) que disponibilizam o desenvolvimento de bens ou serviços.

A alocação também serve para evitar certas complicações. Quando estão trabalhando em setores com os quais não se identificam tanto, por exemplo, os colaboradores podem perder o propósito no trabalho e, assim, acabar imersos em sobrecarga de trabalho.

Este método foi proposto por Joseph Cornell em 1977 e corresponde a uma filosofia de ensino que sugere a adoção de uma sequência, buscando valorizar determinados aspectos sutis da natureza humana para que as atividades na natureza tornem-se mais produtivas.

Em particular, o capítulo apresenta três tipos diferentes de estruturas de controle de fluxo a saber: estruturas seqüenciais, estruturas de decisão, e estruturas de repetição.

Algoritmos Seqüenciais
os passos (instruções) na seqüência em que eles aparecem, do primeiro até o último, durante um tempo finito.