Pilha
const max = 10;
type elemento = integer; vetor = array[1..max] of elemento; pilha = record topo: integer; {topo_aux: integer; } memo: vetor; end;
var {declaracao das vari veis} placa, auxiliar: elemento; pi: pilha; opcao, saindo: char; vet_aux: vetor; posicao, sair, x: integer;
{Rotina com funcionalidade de zerar a pilha} procedure inicializa(var p: pilha); begin p.topo := 0; end;
{Rotina que tem por finalidade verificar se a pilha est vazia} function verifica_se_vazia (var p: pilha): boolean; begin if (p.topo = 0) then verifica_se_vazia := true else verifica_se_vazia := false; end;
{Rotina que tem por finalidade verificar se a pilha est cheia} function verifica_se_cheia (var p: pilha): boolean; begin if (p.topo = max) then verifica_se_cheia := true else verifica_se_cheia := false; end;
{Rotina para empilhamento dos dados} procedure empilha (var p: pilha; x: elemento); begin if not verifica_se_cheia(p) then begin p.topo := p.topo + 1; {vari vel de controle de quantidade de dados} p.memo[p.topo] := x; {armazenamento de dados} end; end;
{Rotina que ir desempilhar os dados} function desempilha (var p: pilha): elemento; begin if not verifica_se_vazia(p) then begin desempilha := p.memo[p.topo]; p.topo := p.topo - 1; end; end;
{Rotina que far a pesquisa e desmpilhara e empilhar os valores} function pesquisa(var p: pilha; pla: integer): boolean; var cont, w, cont1: integer; achou: boolean; begin cont := 1; repeat if (pla = p.memo[cont]) then {verifica a