Diferença entre Stack e Heap

Anonim

Stack vs Heap

A pilha é uma lista ordenada na qual a inserção e exclusão de itens de lista podem ser feitas somente em uma extremidade chamada topo. Devido a esta razão, a pilha é considerada como uma estrutura de dados Last in First out (LIFO). Heap é uma estrutura de dados especial que é baseada em árvores e satisfaz uma propriedade especial chamada propriedade heap. Além disso, um monte é uma árvore completa, o que significa que não existem lacunas entre as folhas da árvore i. e. em uma árvore completa, cada nível é preenchido antes de adicionar um novo nível à árvore e os nós em um determinado nível são preenchidos da esquerda para a direita.

O que é Stack?

Como mencionado anteriormente, a pilha é uma estrutura de dados na qual os elementos são adicionados e removidos de apenas um fim chamado top. As pilhas permitem apenas duas operações fundamentais chamadas push e pop. A operação push adiciona um novo elemento ao topo da pilha. A operação pop remove um elemento do topo da pilha. Se a pilha já estiver cheia, quando uma operação de envio é realizada, ela é considerada como um estouro de pilha. Se uma operação pop for executada em uma pilha já vazia, ela é considerada como um sub-fluxo de pilha. Devido ao pequeno número de operações que podem ser realizadas em uma pilha, é considerada como uma estrutura de dados restrita. Além disso, de acordo com a forma como as operações push e pop são definidas, é claro que os elementos que foram adicionados na última pilha saíram da pilha primeiro. Portanto, a pilha é considerada como uma estrutura de dados LIFO.

O que é Heap?

Como mencionado anteriormente, heap é uma árvore completa que satisfaz a propriedade heap. A propriedade Heap indica que, se y for um nó filho de x, o valor armazenado no nó x deve ser maior ou igual ao valor armazenado no nó y (i. E. Valor (x) ≥ valor (y)). Esta propriedade implica que o nó com maior valor sempre seja colocado na raiz. Um monte construído usando esta propriedade é chamado de montão máximo. Existe outra variação da propriedade heap que indica o contrário disso. (i. e. valor (x) ≤ valor (y)). Isso implica que o nó com o menor valor sempre seria colocado na raiz, assim chamado de min-heap. Existe uma ampla gama de operações realizadas em montes, como encontrar o mínimo (em min-heaps) ou o máximo (em max-heaps), excluir o mínimo (em min-heaps) ou máximo (em max-heaps), aumentar (no máximo -heaps) ou diminuição (em min-heaps), etc.

Qual a diferença entre Stack e Heap?

A principal diferença entre pilhas e pilhas é que, enquanto a pilha é uma estrutura de dados linear, heap é uma estrutura de dados não linear. Stack é uma lista ordenada que segue a propriedade LIFO, enquanto o heap é uma árvore completa que segue a propriedade heap.Além disso, a pilha é uma estrutura de dados restrita que suporta apenas um número limitado de operações como push e pop, enquanto o heap suporta uma ampla gama de operações, como encontrar e excluir o mínimo ou o máximo, aumentando ou diminuindo a chave e a fusão.