pilhas exercicios
1. Mostre graficamente a situação da pilha P, inicialmente vazia, após a execução de cada uma das operações a seguir:
Push(P, a); Push(P, b); Push(P, c); Push(P, Top(P));
Push(P, Pop(P)); Pop(P); Push(P, e); Push(P, e); Pop(P).
P:|a|b|c|c|e |
2. Elabore um programa que transforme um número decimal em binário.
program dec_bin; uses pilhas, crt; var p:pilha; x,n:integer; begin clrscr; write('Digite um N° inteiro: '); readln(n); init(p); repeat x:=(n mod 2);
Push(P,x);
n:=n div 2; until n=0;
write('Corresponde ao bin rio: '); while not isEmpty(p) do begin x:=pop(p); write(x); end; readln; end.
3. Faça um programa que leia uma frase terminada por ponto e imprime a frase invertida.
Program INVERTE; uses pilhas,crt; var f:string;
P:pilha;
i:integer; begin clrscr; init(P); write('Digite uma frase:'); readln(f); i:=1; while F[I]'.' do
BEGIN
push(P,f[i]); i:=i+1; end; write('FRASE INVERSA: '); while not isempty(P) do write(pop(P)); readln; end. 4. Faça um programa que verifique se uma dada cadeia de caracteres é ou não palíndroma. Uma cadeia é palíndroma quando lida da esquerda para a direita e da direita para a esquerda são iguais. Por exemplo: “subinoonibus” é palíndroma.
Program palindroma; uses pilhas,crt; var n,v:string; p:pilha; c,i:integer; begin clrscr; init(p); write('Digite um palavra:'); textcolor(white); read(n); i:=length(n); for c:=1 to i do push(p,n[c]); v:=''; while not isempty(p) do v:=v+(pop(p)); Writeln(v);
If (v=n) then write('A palavra ',n,' ‚ palindroma') else begin
Write(v);
write('A palavra ',n,' nÆo ‚ palindroma'); end; readln;
READLN;
end.
5. Escreva um programa que leia uma frase terminada por ponto e empilhe na pilha V as vogais e na pilha C as consoantes. Imprime as pilhas V e C.
Program SEPARA; uses pilhas,crt; var f:string; c,V:pilha; i,iv,ic:integer; x:char; begin clrscr; init(c);
init(V);