**

sexta-feira, 19 de outubro de 2012

Esquema e programa da Pilha

Esquema de Pilha (LIFO- Last in First aot) isto quer dizer que o Primeiro a entrar é o ultimo a sair.

Programa da Pilha



Program Pilha;
Type Palavra=String[20];
 Dados=Record
 nome:Palavra;
 Prox:^Dados
End;
Var  Pii, Px:^Dados;
 X:Integer;


Procedure Inserir;

Procedure Listar;
Procedure Ordenar;
Procedure Remover;
Begin
Begin //Programa Principal

Begin

 New(Px);
 Writeln('Insira um Nome');
 Readln(Px^.nome);
 Px^.Prox:=Pii;
 Pii:=Px;
End;
Begin
 Px:=Pii;
 If Px=Nil then
  Writeln('Lista Vazia')
 Else
  Repeat
   Writeln('Nome: ', Px^.nome);
   Px:=Px^.Prox;
  Until Px=Nil
End;
Var  P1, P2:^Dados;
 Trocar:Boolean;
 Aux:String;
Begin
 If (Pii<>Nil)and(Pii^.Prox<>Nil) Then
  Repeat
   Trocar:=False;
    P1:=Pii;
    P2:=Pii^.Prox;
    Repeat
     If(P1^.nome> P2^.nome) Then
     Begin
      Trocar:=True;
      Aux:=P1^.nome;
      P1^.nome:=P2^.nome;
      P2^.nome:=Aux;
     End;
      P1:=P1^.Prox;
      P2:=P2^.Prox;
     Until P1^.Prox=Nil;
    Until Not Trocar
End;
Var  Px:^Dados;
 Pa:^Dados;
 Dado:Palavra;
 If Pii<>Nil Then
 Begin
  writeln ('Qual o dado que pretende eliminar?');
  Readln(Dado);
   Px:=Pii;
   Pa:=Nil;
  While (Px<>Nil) and (Px^.nome<>Dado) Do
  Begin
   Pa:=Px;
   Px:=Px^.prox;
  End;
  If  Px=nil then
   Writeln(Dado, 'Nao esta inserido na lista')
  Else
  Begin
   If Pa=Nil Then
   Pii:=Px^.prox
  Else
   Pa^.prox:=Px^.prox;
  Dispose (Px);
   Writeln('O dado foi excluido com sucesso');
  End;
 End;
End;
 Pii:=Nil;
 Repeat 
 Writeln('Menu');
 Writeln('------------');
 Writeln('1->Inserir');
 Writeln('------------');
 Writeln('2->Listar');
 Writeln('------------');
 Writeln('3->Ordenar');
 Writeln('------------');
 writeln('4->Remover');
 Writeln('------------');
 Writeln('0->Sair');
 Writeln('------------');
 Writeln('Qual a opcao?');
 Writeln('------------');
 Readln(X);
 Case X Of
  1:Inserir;
  2:Listar;
  3:Ordenar;
  4:Remover; 
 End;
 Until(X=0);
 Writeln ('--> O PROGRAMA VAI ENCERRAR ;D <--');
End.

Breve reflexão sobre "Pilhas"
As "Pilhas" consiste que na primeira coisa a entrar é o ultimo a sair. Como exemplo pode ser uma pilha de livros (um monte de livros), o primeiro livro a ser pousado na mesa e os restantes colocados em cima  quando são novamente retirados os livros é o ultimo a sair da pilha.

Sem comentários:

Enviar um comentário