Estrutura de dados
Exercício 1)
Considere o programa abaixo. O programa implementa uma pilha e suas instruções que estão ausentes no texto do programa encontram-se nos quadros ao lado sem a devida ordenação. Com base no conhecimento do conceito de pilha complete o programa com as devidas instruções.
Program ALgPilha; uses crt;
Const MAX = 10;
Type Elemento = string[2]; Pilha = record Topo : Integer; Corpo : array [1..MAX] of Elemento end; mens = string[30];
Var P:Pilha; Valor : Elemento; Opcao : Integer;
Procedure Inicio (var P:pilha); { Parametro por referencia } begin P.Topo := 0; end; Function PilhaCheia ( var P:pilha ) : Boolean;
Begin
If P.Topo = MAX then PilhaCheia := true else PilhaCheia := false;
End;
Function PilhaVazia ( var P:pilha ) : Boolean;
Begin
If P.Topo = 0 then PilhaVazia := true else PilhaVazia := false;
End;
Procedure Push ( var P : pilha ; x : elemento ) ;
{ Empilha um elemento x na Pilha }
Begin
If PilhaCheia ( P ) then write (' Pilha Cheia ( Stack Overflow) ') else Begin ____________________ ; ___________________ ; End;
End;
Function Pop ( var P : pilha ) : Elemento ;
{ Remove o elemento do topo de Pilha }
Begin
If PilhaVazia ( P ) then write ( 'Pilha Vazia ( Stack Underflow) ') else Begin __________________; __________________; End;
End;
{ Programa Principal }
Begin
Clrscr; opcao:=0; While Opcao 5 do Begin gotoxy (1,1); Writeln ('Programa de Pascal - Pilhas '); Writeln ('Escolha uma opcao: '); Writeln ('1 : Inicia a pilha '); Writeln ('2 : Empilar elemento '); Writeln ('3 : Desempilar elemento'); Writeln ('5 : Fim do programa '); Writeln (''); Write ('Opcao:'); Readln (Opcao); if (