Esquema da Lista Ordenada, os elementos são ordenados por ordem alfabética, por isso é que se chama "Listas Ordenadas", existe também a possibilidade de remover um elemento de qualquer lugar situado na lista.
Programa de Lista Ordenada
Program lista_ordenada;
Type lista=record
Nome:string;
ponteiro:^lista;
End;
Var px,pii,p1,p2:^lista;
escolha, OP:char;
Procedure inserir;
Begin
New(px);
Writeln('Introduza o nome');
Read(px^.nome);
px^.ponteiro:=pii;
pii:=px;
End;
Procedure listar; Procedure ordenar; Procedure remover;
Begin
px:=pii;
If px=nil Then
Writeln('A lista está vazia')
Else
Begin
Repeat
Writeln('Nome - ', px^.nome);
px:=px^.ponteiro
Until px=nil;
End;
End;
Var trocar: boolean;
aux:string;
Begin
P1:=PII;
P2:=PII^.PONTEIRO;
If (pii <> nil) and (pii^.ponteiro <> nil) Then
repeat
trocar:=false;
p1:=pii;
p2:=pii^.ponteiro;
repeat
if p1^.nome>p2^.nome then
Begin
trocar:=true;
aux:=p1^.nome;
p1^.nome := p2^.nome;
p2^.nome:=aux;
End;
p1:=p1^.ponteiro;
p2:=p2^.ponteiro;
Until p1^.ponteiro = nil;
Until not trocar
Else
Begin
If p1=nil then
Writeln('Lista vazia');
If p1^.ponteiro=nil then
Writeln('Só existem 1 elementos');
End;
End;
Var pa:^lista;dado:string;
Begin
If pii<>nil then
Begin
Writeln('Introduza o dado a eliminar');
Read(dado);
pa:=nil;
px:=pii;
While (px<>nil) and (px^.nome<>dado) do
Begin
pa:=px;
px:=px^.ponteiro;
End;
If px=nil then
Writeln(dado,' não se encontra na lista')
Else
Begin
If pa=nil then
pii:=px^.ponteiro
Else
pa^.ponteiro:=px^.ponteiro;
Dispose(px);
Writeln(dado,' foi removido da lista');
End;
End
Else
Writeln('Lista vazia');
End;
Begin
pii:=nil;
repeat
Writeln('1-Inserir');
Writeln('2-Listar');
Writeln('3-Sair');
Writeln('4-Apagar');
Writeln('Qual a opção?');
Readln(op);
Case op of
1:inserir;
2:listar;
4:remover;
end;
Writeln('Deseja continuar??');
Readln(escolha);
Until(escolha='N') or (escolha='n');
End.
Breve reflexão sobre "Listas Ordenadas"
As "Listas Ordenadas" são muito úteis por vários motivos, pois tem varias funções que são muito úteis para o dia-a-dia, tais como por exemplo bibliotecas, pois com este programa pode-se saber qual a organização alfabética que se deve colocar os livros, ou seja, insere todos os nomes dos livros e o programa faz uma organização alfabética e sempre que chegue um livro novo a biblioteca pode ser acrescentado à lista ou até eliminar um livro que não seja mais utilizado.
|
Sem comentários:
Enviar um comentário