Ir ao conteúdo
  • Cadastre-se

Esvaziar uma PILHA


GustLopez

Posts recomendados

Cara... não sei quase nada de pilhas... pra dizer que eu não sei nada eu sei que elas existem... =)

você experimentou atribuir o valor "nil" para o primeiro ponteiro da lista (se você trabalhar com ponteiros, é claro...)? ou então atribuir esse valor para todos (só se você usar ponteiros também...)? Desculpa se eu falar besteira... mas como disse... não entendo muito de pilhas...

aqui vai um código que ate hoje é um mistério pra mim, mas que também nem me preocupei em entender... =)

talvez o que você esteja procurando seja a função "pop". Nesse código ela está adaptada para remover um só elemento, mas você pode adaptar para remover todos...

como? colocando dentro de um laço....

algo do tipo


i:=max
repeat
pop (i);
i:=i-1;
until (IsEmpty=true);

boa sorte...



unit Pilhas;
const
max=50;
type
Elem=char;
Pilha=record
topo:integer;
memo:array[1..max] of Elem;
end;

procedure Init(var p:pilha):Elem;
begin
P.topo:=0;
end;

function IsEmpty (var P:Pilha):boolean;
begin
if P.topo=0 then
IsEmpty:=true
else
IsEmpty:=false;
end;

function IsFull (var P:Pilha):boolean;
begin
if P.topo=max then
IsFull:=true
else
IsFull:=false;
end;

procedure push (var p:pilha; x:elem);
begin
if not IsEmpty (p) then
begin
P.topo:=p.topo+1;
P.memo[P.topo]:=x;
end
else
writeln ('Stack Overflow!');
end;

function Pop(var p:pilha) :elem;
begin
if not (IsEmpty(p) then
begin
Pop:=P.memo [p.topo]
P.topo:=P.topo-1;
end
else
writeln ('Stack Overflow!');
end;

function Top(var P:pilha):Elem;
begin
if not IsEmpty(p) then
top:=p.memo[p.topo]
else
writeln ('Stack Underflow!');
end;

End.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...