Favor ajudem!

Galera sera que alguem sabe fazer um programa que utiliza uma pilha para determinar se um texto é um palíndromo, ou seja, o texto é soletrado identicamente do início para o fim e do fim para o início.



Preciso disto para hoje 8O

Cara, tu poderia fazer da seguinte maneira: pega o texto e copia ele, de traz pra frente, caracter por caracter, em uma nova string… daí usa o método

equals(), pra ver se são iguais … se forem iguais, o texto é palindromo…

barbada

Cara, respondi essa sua pergunta em outro Forum, mas caso vc olhe aki primero…



isso tá com cara de trabalho para Faculdade, então ai vai um exercício q eu fiz ano passado. Tá escrito em Pascal, mas se a matéria não for Java vai servir, se for, bem, a lógica é a mesma.

O meu exercício era mais complexo que isso então eu dei uma adaptada e não testei, portanto pode ser que de algum pau de sintax, ms a lógica é essa.

Qualquer problema Grita!



Código:



uses crt;



{inicio da extrutura de pilha}



type tpilha = record

vet: array[1…200] of char;

topo: integer;

end;



var p1 : tpilha;

s1 : string;

s2 : string;



procedure inicio; forward;



procedure init(var p:tpilha);

begin

p.topo:=0;

end;



function isempty(p:tpilha):boolean;

begin

isempty:=(p.topo=0);

end;



function isfull(p:tpilha):boolean;

begin

isfull:=(p.topo=200);

end;



procedure push(var p:tpilha;elem:char);

begin

if isfull§ then

begin

writeln(´OVERFLOW!´);

readln;

halt;

end

else

begin

p.topo:=p.topo+1;

p.vet[p.topo]:=elem;

end;

end;



function pop(var p:tpilha): char;

begin

if isempty§ then

begin

writeln(´UNDERFLOW!´);

readln;

halt;

end

else

begin

popc:=p.vet[p.topo];

p.topo:=p.topo-1;

end;

end;



function top(p:tpilha): char;

begin

top:=p.vet[p.topo];

end;



{fim da estrutura de pilha}



procedure verifica();

begin

for i:=1 to length(s1) do

begin

push(p1,s1[i]);

end;

while (not isempty(p1)) do

begin

s2:= s2+pop(p1);

end;

if (s2=s1) then

begin

writeln(´palíndromo´);

end

else

begin

writeln(´não palíndromo´);

end;

inicio;

end;



procedure inicio;

begin

s1:=´´;

s2:=´´;

init(p1);

write(´ Entre com uma expresao: ´);

readln(s1);

if e<>´´ then verifica(p1,s1);

end;



begin

clrscr;

inicio;

end.

valeu galera ajudaram muito!!!

Surubion