AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton...
Transcript of AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton...
![Page 1: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/1.jpg)
AULA 08ESTRUTURA DE DADOS
Pilha - implementação estática
Norton T. Roman & Luciano A. Digiampietri
![Page 2: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/2.jpg)
Pilha
Pilha é uma estrutura linear na qual:
- As inserções ocorrem no topo da pilha;- As exclusões ocorrem no topo da pilha.- Utiliza a mesma lógica de uma pilha de papéis.
![Page 3: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/3.jpg)
Pilha
Pilha é uma estrutura linear na qual:- As inserções ocorrem no topo da pilha;
- As exclusões ocorrem no topo da pilha.- Utiliza a mesma lógica de uma pilha de papéis.
![Page 4: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/4.jpg)
Pilha
Pilha é uma estrutura linear na qual:- As inserções ocorrem no topo da pilha;- As exclusões ocorrem no topo da pilha.
- Utiliza a mesma lógica de uma pilha de papéis.
![Page 5: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/5.jpg)
Pilha
Pilha é uma estrutura linear na qual:- As inserções ocorrem no topo da pilha;- As exclusões ocorrem no topo da pilha.- Utiliza a mesma lógica de uma pilha de papéis.
![Page 6: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/6.jpg)
Pilha - implementação estática
Utilizaremos um arranjo de elementos de tamanhopredefinido;Controlaremos a posição do elemento que está notopo da pilha.
![Page 7: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/7.jpg)
Ideia
Temos um arranjo de tamanho predefinido
Temos um campo para indicar a posição do elemento que estáno topo
Como inserimos o elemento 8?
Como excluímos um elemento?
![Page 8: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/8.jpg)
Ideia
Temos um arranjo de tamanho predefinido
Temos um campo para indicar a posição do elemento que estáno topo
Como inserimos o elemento 8?
Como excluímos um elemento?
![Page 9: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/9.jpg)
Ideia
Temos um arranjo de tamanho predefinido
Temos um campo para indicar a posição do elemento que estáno topo
Como inserimos o elemento 8?
Como excluímos um elemento?
![Page 10: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/10.jpg)
Ideia
Temos um arranjo de tamanho predefinido
Temos um campo para indicar a posição do elemento que estáno topo
Como inserimos o elemento 8?
Como excluímos um elemento?
![Page 11: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/11.jpg)
Ideia
Temos um arranjo de tamanho predefinido
Temos um campo para indicar a posição do elemento que estáno topo
Como inserimos o elemento 8?
Como excluímos um elemento?
![Page 12: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/12.jpg)
Modelagem#include <stdio.h>
#define MAX 50
#define true 1
#define false 0
typedef int bool;
typedef int TIPOCHAVE;
typedef struct {
TIPOCHAVE chave;
} REGISTRO;
typedef struct {
REGISTRO A[MAX];
int topo;
} PILHA;
![Page 13: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/13.jpg)
Modelagem#include <stdio.h>
#define MAX 50
#define true 1
#define false 0
typedef int bool;
typedef int TIPOCHAVE;
typedef struct {
TIPOCHAVE chave;
} REGISTRO;
typedef struct {
REGISTRO A[MAX];
int topo;
} PILHA;
![Page 14: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/14.jpg)
Modelagem#include <stdio.h>
#define MAX 50
#define true 1
#define false 0
typedef int bool;
typedef int TIPOCHAVE;
typedef struct {
TIPOCHAVE chave;
} REGISTRO;
typedef struct {
REGISTRO A[MAX];
int topo;
} PILHA;
![Page 15: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/15.jpg)
Funções de gerenciamento
Implementaremos funções para:Inicializar a estruturaRetornar a quantidade de elementos válidosExibir os elementos da estruturaInserir elementos na estrutura (push)Excluir elementos da estrutura (pop)Reinicializar a estrutura
![Page 16: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/16.jpg)
Inicialização
Para inicializar uma pilha já criada pelo usuário,precisamos apenas acertar o valor do campo topo.
Já que o topo indicará a posição no arranjo doelemento que está no topo da pilha e a pilha estávazia, iniciaremos esse campo com valor -1.
![Page 17: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/17.jpg)
Inicialização
Para inicializar uma pilha já criada pelo usuário,precisamos apenas acertar o valor do campo topo.
Já que o topo indicará a posição no arranjo doelemento que está no topo da pilha e a pilha estávazia, iniciaremos esse campo com valor -1.
![Page 18: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/18.jpg)
Inicialização
void inicializarPilha(PILHA* p) {
p->topo = -1;
}
![Page 19: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/19.jpg)
Inicialização
void inicializarPilha(PILHA* p) {
p->topo = -1;
}
![Page 20: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/20.jpg)
Retornar número de elementos
Já que o campo topo contém a posição no arranjodo elemento no topo da pilha, o número deelementos é igual a: topo + 1Notem que para a pilha vazia isto também funciona.
![Page 21: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/21.jpg)
Retornar número de elementos
Já que o campo topo contém a posição no arranjodo elemento no topo da pilha, o número deelementos é igual a: topo + 1
Notem que para a pilha vazia isto também funciona.
![Page 22: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/22.jpg)
Retornar número de elementos
Já que o campo topo contém a posição no arranjodo elemento no topo da pilha, o número deelementos é igual a: topo + 1Notem que para a pilha vazia isto também funciona.
![Page 23: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/23.jpg)
Retornar número de elementos
int tamanhoPilha(PILHA* p) {
return p->topo + 1;
}
![Page 24: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/24.jpg)
Exibição/Impressão
Para exibir os elementos da estrutura precisaremositerar pelos elementos válidos e, por exemplo,imprimir suas chaves.
![Page 25: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/25.jpg)
Exibição/Impressão
void exibirPilha(PILHA* p) {
printf("Pilha: \" ");
int i;
for (i=p->topo;i>=0;i--) {
printf("%i ", p->A[i].chave);
}
printf("\"\n");
}
Saída:
$ Pilha: " 7 2 5 "
![Page 26: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/26.jpg)
Exibição/Impressão
void exibirPilha(PILHA* p) {
printf("Pilha: \" ");
int i;
for (i=p->topo;i>=0;i--) {
printf("%i ", p->A[i].chave);
}
printf("\"\n");
}
Saída:
$ Pilha: " 7 2 5 "
![Page 27: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/27.jpg)
Exibição/Impressão
void exibirPilha(PILHA* p) {
printf("Pilha: \" ");
int i;
for (i=p->topo;i>=0;i--) {
printf("%i ", p->A[i].chave);
}
printf("\"\n");
}
Saída:
$ Pilha: " 7 2 5 "
![Page 28: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/28.jpg)
Exibição/Impressão
void exibirPilha(PILHA* p) {
printf("Pilha: \" ");
int i;
for (i=p->topo;i>=0;i--) {
printf("%i ", p->A[i].chave);
}
printf("\"\n");
}
Saída:
$ Pilha: " 7 2 5 "
![Page 29: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/29.jpg)
Inserção de um elemento (push)
O usuário passa como parâmetro um registro a serinserido na pilha
Se a pilha não estiver cheia, o elemento seráinserido no topo da pilha, ou melhor, “acima” doelemento que está no topo da pilha.
![Page 30: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/30.jpg)
Inserção de um elemento (push)
O usuário passa como parâmetro um registro a serinserido na pilha
Se a pilha não estiver cheia, o elemento seráinserido no topo da pilha, ou melhor, “acima” doelemento que está no topo da pilha.
![Page 31: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/31.jpg)
Inserção de um elemento (push)
bool inserirElementoPilha(PILHA* p, REGISTRO reg) {
if (p->topo >= MAX-1) return false;
p->topo = p->topo+1;
p->A[p->topo] = reg;
return true;
}
![Page 32: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/32.jpg)
Inserção de um elemento (push)
bool inserirElementoPilha(PILHA* p, REGISTRO reg) {
if (p->topo >= MAX-1) return false;
p->topo = p->topo+1;
p->A[p->topo] = reg;
return true;
}
![Page 33: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/33.jpg)
Inserção de um elemento (push)
bool inserirElementoPilha(PILHA* p, REGISTRO reg) {
if (p->topo >= MAX-1) return false;
p->topo = p->topo+1;
p->A[p->topo] = reg;
return true;
}
![Page 34: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/34.jpg)
Inserção de um elemento (push)
bool inserirElementoPilha(PILHA* p, REGISTRO reg) {
if (p->topo >= MAX-1) return false;
p->topo = p->topo+1;
p->A[p->topo] = reg;
return true;
}
![Page 35: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/35.jpg)
Inserção de um elemento (push)
bool inserirElementoPilha(PILHA* p, REGISTRO reg) {
if (p->topo >= MAX-1) return false;
p->topo = p->topo+1;
p->A[p->topo] = reg;
return true;
}
![Page 36: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/36.jpg)
Inserção de um elemento (push)
bool inserirElementoPilha(PILHA* p, REGISTRO reg) {
if (p->topo >= MAX-1) return false;
p->topo = p->topo+1;
p->A[p->topo] = reg;
return true;
}
![Page 37: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/37.jpg)
Exclusão de um elemento (pop)
O usuário solicita a exclusão do elemento do topoda pilha:
Se a pilha não estiver vazia, além de excluir esseelemento da pilha iremos copiá-lo para um localindicado pelo usuário.
![Page 38: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/38.jpg)
Exclusão de um elemento (pop)
O usuário solicita a exclusão do elemento do topoda pilha:
Se a pilha não estiver vazia, além de excluir esseelemento da pilha iremos copiá-lo para um localindicado pelo usuário.
![Page 39: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/39.jpg)
Exclusão de um elemento (pop)bool excluirElementoPilha(PILHA* p, REGISTRO* reg) {
if (p->topo == -1) return false;
*reg = p->A[p->topo];
p->topo = p->topo-1;
return true;
}
![Page 40: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/40.jpg)
Exclusão de um elemento (pop)bool excluirElementoPilha(PILHA* p, REGISTRO* reg) {
if (p->topo == -1) return false;
*reg = p->A[p->topo];
p->topo = p->topo-1;
return true;
}
![Page 41: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/41.jpg)
Exclusão de um elemento (pop)bool excluirElementoPilha(PILHA* p, REGISTRO* reg) {
if (p->topo == -1) return false;
*reg = p->A[p->topo];
p->topo = p->topo-1;
return true;
}
![Page 42: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/42.jpg)
Exclusão de um elemento (pop)bool excluirElementoPilha(PILHA* p, REGISTRO* reg) {
if (p->topo == -1) return false;
*reg = p->A[p->topo];
p->topo = p->topo-1;
return true;
}
![Page 43: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/43.jpg)
Exclusão de um elemento (pop)bool excluirElementoPilha(PILHA* p, REGISTRO* reg) {
if (p->topo == -1) return false;
*reg = p->A[p->topo];
p->topo = p->topo-1;
return true;
}
![Page 44: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/44.jpg)
Exclusão de um elemento (pop)bool excluirElementoPilha(PILHA* p, REGISTRO* reg) {
if (p->topo == -1) return false;
*reg = p->A[p->topo];
p->topo = p->topo-1;
return true;
}
![Page 45: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/45.jpg)
Exclusão de um elemento (pop)bool excluirElementoPilha(PILHA* p, REGISTRO* reg) {
if (p->topo == -1) return false;
*reg = p->A[p->topo];
p->topo = p->topo-1;
return true;
}
![Page 46: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/46.jpg)
Reinicialização da pilha
Para esta estrutura, para reinicializar a pilha bastacolocar -1 no campo topo
![Page 47: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/47.jpg)
Reinicialização da pilha
Para esta estrutura, para reinicializar a pilha bastacolocar -1 no campo topo
![Page 48: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/48.jpg)
Reinicialização da pilha
void reinicializarPilha(PILHA* p) {
p->topo = -1;
}
![Page 49: AULA 08 ESTRUTURA DE DADOS · AULA 08 ESTRUTURA DE DADOS Pilha - implementação estática Norton T. Roman & Luciano A. Digiampietri](https://reader034.fdocumentos.com/reader034/viewer/2022042304/5ecf23f01143b7369112ff41/html5/thumbnails/49.jpg)
AULA 08ESTRUTURA DE DADOS
Pilha - implementação estática
Norton T. Roman & Luciano A. Digiampietri