Teste de Envio de Trabalho
Por: YdecRupolo • 14/4/2018 • 555 Palavras (3 Páginas) • 370 Visualizações
...
de memória pré-definida).
Vemos nas linhas 5 e 10 a criação de um vetor e a alocação desse vetor, definindo as que
elementos ficarão na sequência física de memória ou alocação sequencial.
O método isEmpty (verifica se está vazio) e isFull (verifica se está cheia) são usados para
fazer a inserção de elementos na pilha (push), consulta de topo (top) e remoção de elementos
(pop).
O método print foi criado apenas para exibir os elementos da Pilha na tela, da primeira
para a última posição.
1.2. – Pilha Dinâmica
Um problema encontrado nas Pilhas Estáticas é a limitação da inserção de elementos
na Pilha, pois ela estava limitada pelo tamanho do vetor declarado. Tanto em termos de
superdimensionamento quanto subdimensionamento. A Pilha dinâmica faz uma requisição à
heap (área de memória disponível no sistema) toda vez que um novo elemento precisa ser
inserido na Pilha assim como desloca a memória usada por um elemento que foi excluído
dela. Com isso, usamos somente a quantidade de memória exata que o programa necessita.
Para implementarmos a Pilha Dinâmica, vamos pensar que cada elemento da Pilha
será um nó, onde teremos acesso somente ao topo (estrutura LIFO). A Pilha Dinâmica usa a
alocação encadeada, ou seja, os elementos não necessariamente estão dispostos na ordem
física da memória, portanto, cada elemento deverá conter o endereço do próximo elemento
da Pilha.
Então teremos que implementar um nó da Pilha e para cada inserção alocaremos espaço
para mais um nó, até o limite da heap.
Para a implementação de uma Pilha Dinâmica, vamos primeiramente entender como
funciona uma LISTA ENCADEADA. Em uma lista encadeada cada elemento da lista deve
armazenar o endereço do próximo elemento. Chamamos de Lista Simplesmente Encadeada,
pois o elemento só conhece o endereço do seu próximo e não do seu anterior. Se fosse
necessário armazenar também o endereço do nó anterior, teríamos uma lista duplamente
encadeada.
...