quinta-feira, 18 de outubro de 2012

Lista Ordenadas

As Listas Ordenadas são estruturas dinâmicas ....
EX_: DE UMA Lista Ordenada


Lista Ordenada

-----------------------------------------------------------------------------------

Program lista_ordenada ;

type dados=record

     nome:string[15];

     prox:^dados;

end;

var px,pi:^dados;

    escolha,y:char;

----------------------------------------------------------------------------------    

procedure inserir;   

     Begin

         new(px);

         writeln('Introduza um nome :');

         readln(px^.nome);

         px^.prox:=pi;

         pi:=px

     end;

    

procedure listar;

 begin

       if pi=nil then

          writeln('Lista vazia')

       else

           while px<>nil do

               begin

                    writeln('Nome : ', px^.nome);

                     px:=px^.prox;

               end;

 end ;

---------------------------------------------------------------------------------   

   

procedure ordenar;

var p1,p2:^dados;

         aux:string[15];

        trocar:boolean;

   begin    

          p1:=pi;

           p2:=pi^.prox;

      if p1=nil then

          writeln('Lista vazia')

       else

         if p2=nil then

             writeln(px^.nome)

        else

           while trocar=false do

         begin

                trocar:=false;

                 p1:=pi;

                  p2:=pi^.prox;

          repeat

                   begin

              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;

            end; 

          until p2<>nil;

          end;

    end;

-----------------------------------------------------------------------------------------

   begin // Programa Principal

  repeat

         writeln('Selecione a opção pretendida :');

         writeln;

         writeln('1- Para introduzir dados');

         writeln('2- Para listar dados');

         writeln('3- Para ordenar dados');

         writeln;

         writeln('Qual a opção pretendida?');

         readln(escolha);

          case escolha of

            '1': inserir;

            '2': listar;

            '3': ordenar;

          end;

        writeln;

        writeln('Deseja continuar?(S\N)');

        readln(y);

   until (y='n');

End.


Sem comentários:

Enviar um comentário