You are on page 1of 4

Lista x Fila

Estrutura dos Nós:

Ambas usam uma estrutura de nó (Node) com um valor (int valor) e um ponteiro para o
próximo nó (struct Node* prox).

Estrutura Principal:

Lista: Contém ponteiros para o primeiro (primeiro) e último (último) elementos, e


um contador para o número de elementos (tamanho).

Fila: Também contém ponteiros para o primeiro (início) e último (fim) elementos,
e um contador para o número de elementos (tamanho). Embora similar na
estrutura, a nomenclatura e o comportamento são diferentes.

Adicionar Elementos:

Lista: adicionarElemento adiciona um novo elemento ao final da lista.


Fila: enfileirar também adiciona um novo elemento ao final da fila. Ambas
estruturas mantêm o registro do último elemento para facilitar essa operação.

Remover Elementos:

Lista: Oferece duas funções, removerElemento, que remove um elemento


específico baseado em seu valor, e removerPorIndice, que remove um elemento
baseado em seu índice.
Fila: Usa desenfileirar, que remova sempre o primeiro elemento da fila
(comportamento FIFO). Não há opção de remover um elemento específico ou
por índice.

Obter Elementos:

Lista: obterElemento permite acessar um elemento baseado em seu índice.


Fila: proximoElemento permite apenas espiar o primeiro elemento da fila, sem
removê-lo.
Verificar Tamanho e se Está Vazia:

Ambas as estruturas têm funções (tamanhoLista e listaVazia para a lista,


tamanhoFila e filaVazia para a fila) para verificar o tamanho e se a estrutura está
vazia.

Destruição da Estrutura:

Lista e Fila: Ambas têm uma função para destruir a estrutura (destruirLista e
destruirFila), que libera a memória alocada para todos os elementos e para a
estrutura em si.

Comportamento:

Lista: Permite mais flexibilidade com operações de adição e remoção em


qualquer posição.
Fila: Estritamente segue o princípio FIFO (First In, First Out), com adições
apenas no final e remoções apenas no início.

Lista x Stack
Estrutura dos Nós:

Tanto a lista quanto a pilha usam a mesma estrutura básica de nó (Node) com
um valor (int valor) e um ponteiro para o próximo nó (struct Node* prox).

Estrutura Principal:

Lista: Contém ponteiros para o primeiro (primeiro) e último (ultimo) elementos,


além de um contador de tamanho (tamanho).
Pilha: Contém apenas um ponteiro para o topo da pilha (topo) e um contador de
tamanho (tamanho). Não há necessidade de manter um ponteiro para o final,
pois as operações são realizadas apenas no topo.

Adicionar Elementos:
Lista: A função adicionarElemento adiciona um novo elemento ao final da lista. A
lista também suporta inserção em qualquer posição.
Pilha: A função empilhar adiciona um novo elemento no topo da pilha. A pilha
suporta adições apenas no topo, seguindo o princípio LIFO (Last In, First Out).

Remover Elementos:

Lista: Suporta remoção de elementos baseada em valor ou índice, permitindo


flexibilidade na remoção.
Pilha: A função desempilhar remove o elemento do topo da pilha. Não há
flexibilidade na remoção, pois apenas o elemento do topo pode ser removido
(LIFO).

Obter Elementos:

Lista: A função obterElemento permite acessar um elemento baseado em seu


índice.
Pilha: A função proximoElemento fornece o valor do elemento no topo da pilha
sem removê-lo. Não há acesso direto a elementos que não estão no topo.

Verificar Tamanho e se Está Vazia:

Ambas as estruturas possuem funções para verificar o tamanho e se estão


vazias (tamanhoLista e listaVazia para a lista; tamanhoPilha e pilhaVazia para a
pilha).

Destruição da Estrutura:

Lista e Pilha: Ambas têm uma função para destruir a estrutura (destruirLista e
destruirPilha), liberando a memória alocada para os elementos e para a própria
estrutura.

Comportamento e Uso:

Lista: Oferece flexibilidade com operações de adição e remoção em qualquer


posição, adequada para uma variedade de aplicações.
Pilha: Estritamente segue o princípio LIFO, com adições e remoções apenas no
topo, adequada para aplicações que necessitam dessa disciplina de acesso.

You might also like