Lista Ordenada
Programa Lista Ordenada ;
type pessoa = record
nome : string;
ponteiro:^pessoa;
end;
var pi, px:^pessoa;
x: integer;
procedure inserir;
Begin
new(px);
writeln('nome:');
readln(px^.nome);
px^.ponteiro:= pi;
pi:= px;
End;
procedure listar;
begin
repeat
writeln('nome:', px^.nome);
px:= px^.ponteiro;
until px = nil;
end;
procedure ordenar;
var p1, p2 : ^pessoa;
aux: string;
trocar: boolean;
begin
if (p1 = nil) then
writeln ('lista vazia')
else
if p2= nil then
writeln ('lista so com 1 elemento')
else
begin
repeat
p1:= pi;
p2:= pi^.ponteiro;
trocar:= false;
repeat
if (p1^.nome > p2^.nome) then
begin
trocar:= true;
aux:= p1^.nome;
p1^.nome:= p2^.nome;
p2^.nome:= aux;
end
else
p1:= p1^.ponteiro;
p2:= p2^.ponteiro;
until (p1^.ponteiro = nil);
until not trocar;
end;
end;
begin
repeat
writeln('1_ inserir');
writeln('2_ listar');
writeln('3_ ordenar');
writeln('0_ terminar');
case x of
1 : inserir;
2 : listar;
3 : ordenar;
end;
until x= 0;
end.
Reflexão:
Uma lista é uma estrutura dinâmica constituída por um conjunto de nós, ligados entre si por ponteiros.
Numa lista ordenada, apenas se exige que os seus elementos (um dos campos da informação) estejam dispostos de forma ordenada, alfabeticamente ou por ordem de valor.
type pessoa = record
nome : string;
ponteiro:^pessoa;
end;
var pi, px:^pessoa;
x: integer;
procedure inserir;
Begin
new(px);
writeln('nome:');
readln(px^.nome);
px^.ponteiro:= pi;
pi:= px;
End;
procedure listar;
begin
repeat
writeln('nome:', px^.nome);
px:= px^.ponteiro;
until px = nil;
end;
procedure ordenar;
var p1, p2 : ^pessoa;
aux: string;
trocar: boolean;
begin
if (p1 = nil) then
writeln ('lista vazia')
else
if p2= nil then
writeln ('lista so com 1 elemento')
else
begin
repeat
p1:= pi;
p2:= pi^.ponteiro;
trocar:= false;
repeat
if (p1^.nome > p2^.nome) then
begin
trocar:= true;
aux:= p1^.nome;
p1^.nome:= p2^.nome;
p2^.nome:= aux;
end
else
p1:= p1^.ponteiro;
p2:= p2^.ponteiro;
until (p1^.ponteiro = nil);
until not trocar;
end;
end;
begin
repeat
writeln('1_ inserir');
writeln('2_ listar');
writeln('3_ ordenar');
writeln('0_ terminar');
case x of
1 : inserir;
2 : listar;
3 : ordenar;
end;
until x= 0;
end.
Reflexão:
Uma lista é uma estrutura dinâmica constituída por um conjunto de nós, ligados entre si por ponteiros.
Numa lista ordenada, apenas se exige que os seus elementos (um dos campos da informação) estejam dispostos de forma ordenada, alfabeticamente ou por ordem de valor.

