Qual é a diferença básica entre pilha e fila?
Por favor me ajude, sou incapaz de encontrar a diferença.
Como você diferencia uma pilha e uma fila?
Procurei a resposta em vários links e encontrei esta resposta ..
Na programação de alto nível,
uma pilha é definida como uma lista ou sequência de elementos que é alongada colocando novos elementos "em cima" dos elementos existentes e abreviada removendo elementos da parte superior dos elementos existentes. É um ADT [Abstract Data Type] com operações matemáticas de "push" e "pop".
Uma fila é uma sequência de elementos adicionados ao colocar o novo elemento na parte traseira do existente e abreviado, removendo elementos na frente da fila. É um ADT [Abstract Data Type]. Há mais desses termos entendidos na programação de Java, C ++, Python e assim por diante.
Posso ter uma resposta mais detalhada? Por favor me ajude.
Respostas:
Stack é uma estrutura de dados LIFO (último a entrar, primeiro a sair). O link associado à wikipedia contém descrição e exemplos detalhados.
Fila é uma estrutura de dados FIFO (primeiro a entrar, primeiro a sair). O link associado à wikipedia contém descrição e exemplos detalhados.
fonte
Imagine uma pilha de papel . A última peça colocada na pilha está no topo, então é a primeira a sair. Este é o LIFO . Adicionar um pedaço de papel é chamado "empurrar" e remover um pedaço de papel é chamado "estourar".
Imagine uma fila na loja . A primeira pessoa na fila é a primeira pessoa a sair da fila. Este é FIFO . Uma pessoa que entra na fila é "enfileirada" e uma pessoa que sai da fila é "enfileirada".
fonte
Um modelo visual
Pilha de panquecas (LIFO)
A única maneira de adicionar e / ou remover um é de cima.
Fila de linha (FIFO)
Quando alguém chega, chega ao final da fila e, quando sai, sai da frente da fila.
Curiosidade: os britânicos se referem a filas de pessoas como uma Fila
fonte
Você pode pensar em ambos como uma lista ordenada de itens (ordenada pela hora em que foram adicionados à lista). A principal diferença entre os dois é como os novos elementos entram na lista e os elementos antigos deixam a lista.
Para uma pilha, se eu tenho uma lista
a, b, c
, e eu adicionod
, ela é pregada no final, então eu acabo coma,b,c,d
. Se eu quiser exibir um elemento da lista, removo o último elemento que adicionei, que éd
. Depois de um pop, minha lista estáa,b,c
novamentePara uma fila, adiciono novos elementos da mesma maneira.
a,b,c
torna-sea,b,c,d
após a adiçãod
. Mas agora, quando eu pop, tenho que pegar um elemento da frente da lista, para que ele se torneb,c,d
.É muito simples!
fonte
Fila
Fila é uma coleção ordenada de itens.
Os itens são excluídos em uma extremidade chamada extremidade frontal da fila.
Os itens são inseridos na outra extremidade, chamados de "parte traseira" da fila.
O primeiro item inserido é o primeiro a ser removido (FIFO).
Pilha
Pilha é uma coleção de itens.
Permite acessar apenas um item de dados: o último item inserido.
Os itens são inseridos e excluídos em uma extremidade chamada 'Topo da pilha'.
É um objeto dinâmico e em constante mudança.
Todos os itens de dados são colocados no topo da pilha e retirados do topo
Essa estrutura de acesso é conhecida como estrutura Last in First Out (LIFO)
fonte
PILHA:
FILA:
fonte
Uma pilha é uma coleção de elementos, que podem ser armazenados e recuperados um de cada vez. Os elementos são recuperados na ordem inversa do tempo de armazenamento, ou seja, o último elemento armazenado é o próximo a ser recuperado. Às vezes, uma pilha é chamada de estrutura Last-In-First-Out (LIFO) ou First-In-Last-Out (FILO). Os elementos armazenados anteriormente não podem ser recuperados até que o elemento mais recente (geralmente chamado de elemento 'top') tenha sido recuperado.
Uma fila é uma coleção de elementos, que podem ser armazenados e recuperados um de cada vez. Os elementos são recuperados na ordem do tempo de armazenamento, ou seja, o primeiro elemento armazenado é o próximo elemento a ser recuperado. Às vezes, uma fila é chamada de estrutura First-In-First-Out (FIFO) ou Last-In-Last-Out (LILO). Os elementos armazenados posteriormente não podem ser recuperados até que o primeiro elemento (geralmente chamado de elemento 'front') tenha sido recuperado.
fonte
PILHA: A pilha é definida como uma lista de elementos nos quais podemos inserir ou excluir elementos apenas na parte superior da pilha.
Pilha é usada para passar parâmetros entre funções. Em uma chamada para uma função, os parâmetros e variáveis locais são armazenados em uma pilha.
Uma pilha é uma coleção de elementos, que podem ser armazenados e recuperados um de cada vez. Os elementos são recuperados na ordem inversa do tempo de armazenamento, ou seja, o último elemento armazenado é o próximo a ser recuperado. Às vezes, uma pilha é chamada de estrutura Last-In-First-Out (LIFO) ou First-In-Last-Out (FILO). Os elementos armazenados anteriormente não podem ser recuperados até que o elemento mais recente (geralmente chamado de elemento 'top') tenha sido recuperado.
FILA:
Fila é uma coleção do mesmo tipo de elemento. É uma lista linear na qual as inserções podem ocorrer em uma extremidade da lista, denominada parte traseira da lista, e as exclusões podem ocorrer apenas na outra extremidade, denominada parte frontal da lista
Uma fila é uma coleção de elementos, que podem ser armazenados e recuperados um de cada vez. Os elementos são recuperados na ordem do tempo de armazenamento, ou seja, o primeiro elemento armazenado é o próximo elemento a ser recuperado. Às vezes, uma fila é chamada de estrutura First-In-First-Out (FIFO) ou Last-In-Last-Out (LILO). Os elementos armazenados posteriormente não podem ser recuperados até que o primeiro elemento (geralmente chamado de elemento 'front') tenha sido recuperado.
fonte
Para tentar simplificar demais a descrição de uma pilha e uma fila, os dois são cadeias dinâmicas de elementos de informação que podem ser acessados de uma extremidade da cadeia e a única diferença real entre eles é o fato de:
ao trabalhar com uma pilha
enquanto com uma fila
NOTA : Estou usando a redação abstrata de recuperar / remover nesse contexto, porque há casos em que você apenas recupera o elemento da cadeia ou, de certa forma, apenas o lê ou acessa seu valor, mas também há casos em que você remove o elemento de a cadeia e, finalmente, há casos em que você executa as duas ações com a mesma chamada.
Além disso, o elemento word é usado propositadamente para abstrair a cadeia imaginária o máximo possível e separá-la de termos específicos da linguagem de programação. Essa entidade de informação abstrata chamada elemento pode ser qualquer coisa, de um ponteiro, um valor, uma string ou caracteres, um objeto, ... dependendo do idioma.
Na maioria dos casos, embora seja realmente um valor ou um local de memória (ou seja, um ponteiro). E o resto está apenas escondendo esse fato por trás do jargão da linguagem <
Uma fila pode ser útil quando a ordem dos elementos é importante e precisa ser exatamente a mesma de quando os elementos entraram no seu programa. Por exemplo, quando você processa um fluxo de áudio ou quando você armazena em buffer os dados da rede. Ou quando você faz qualquer tipo de processamento de armazenamento e encaminhamento. Em todos esses casos, é necessário que a sequência dos elementos seja impressa na mesma ordem em que foram inseridos no programa, caso contrário, as informações podem parar de fazer sentido. Portanto, você pode interromper seu programa em uma parte que lê dados de alguma entrada, faz algum processamento e os grava em uma fila e uma parte que recupera dados da fila os processa e os armazena em outra fila para processamento ou transmissão de dados .
Uma pilha pode ser útil quando você precisar armazenar temporariamente um elemento que será usado nas etapas imediatas do seu programa. Por exemplo, linguagens de programação geralmente usam uma estrutura de pilha para passar variáveis para funções. O que eles realmente fazem é armazenar (ou enviar) os argumentos da função na pilha e, em seguida, pular para a função na qual eles removem e recuperam (ou pop) o mesmo número de elementos da pilha. Dessa forma, o tamanho da pilha depende do número de chamadas de funções aninhadas. Além disso, depois que uma função é chamada e finalizada o que estava fazendo, ela deixa a pilha exatamente na mesma condição de antes de ser chamada! Dessa forma, qualquer função pode operar com a pilha ignorando como outras funções operam com ela.
Por fim, você deve saber que existem outros termos usados lá fora, para o mesmo conceito semelhante. Por exemplo, uma pilha pode ser chamada de heap. Também existem versões híbridas desses conceitos, por exemplo, uma fila de extremidade dupla pode se comportar ao mesmo tempo que uma pilha e uma fila, porque pode ser acessada pelas duas extremidades simultaneamente. Além disso, o fato de uma estrutura de dados ser fornecida a você como uma pilha ou uma fila, não significa necessariamente que ela seja implementada como tal, há casos em que uma estrutura de dados pode ser implementada como qualquer coisa e fornecida como um específico estrutura de dados simplesmente porque pode ser feita para se comportar como tal. Em outras palavras, se você fornecer um método push e pop para qualquer estrutura de dados, eles magicamente se tornam pilhas!
fonte
STACK é uma lista do LIFO (último a entrar, primeiro a sair). significa suponha que 3 elementos sejam inseridos na pilha, isto é, 10,20,30. 10 são inseridos primeiro e 30 são inseridos por último; portanto, 30 são excluídos da pilha e 10 são excluídos pela última vez da pilha.
QUEUE é a lista FIFO (primeiro a entrar, primeiro a sair). Significa que um elemento é inserido primeiro, o qual deve ser excluído primeiro.
fonte
Empilha uma coleção considerada vertical. Primeiro, entenda que uma coleção é um OBJETO que reúne e organiza outros OBJETOS menores. Esses OBJETOS menores são comumente referidos como Elementos. Esses elementos são "Empurrados" na pilha em uma ordem ABC em que A é o primeiro e C é o último. verticalmente ficaria assim: 3º elemento adicionado) C 2º elemento adicionado) B 1º elemento adicionado) A
Observe que o "A" que foi adicionado primeiro à pilha está na parte inferior. Se você deseja remover o "A" da pilha, primeiro você precisa remover "C", depois "B" e, finalmente, o elemento de destino "A". A pilha requer uma abordagem LIFO ao lidar com as complexidades de uma pilha. (Last In First Out) Ao remover um elemento de uma pilha, a sintaxe correta é pop. nós não removemos um elemento de uma pilha, nós o "destacamos".
Lembre-se de que "A" foi o primeiro elemento pressionado na pilha e "C" foi o último item pressionado na pilha. Se você decidir que gostaria de ver o que está no fundo da pilha, sendo os 3 elementos na pilha ordenados A sendo o primeiro B sendo o segundo e C sendo o terceiro elemento, o topo teria que ser disparado e depois o segundo elemento adicionado para visualizar a parte inferior da pilha.
fonte