Pascal/Turbo Pascal - Ordenar Listas Enlazadas

 
Vista:

Ordenar Listas Enlazadas

Publicado por Pascal (1 intervención) el 20/05/2008 09:21:16
He visto que muchos andan solicitando procedimientos para ordenar listas enlazadas, pero solo haciendo uso de los punteros. Este es mi humilde aporte.

Procedure Ordenar (Var Ini: Nodo);
Var
I,C:integer;
AAnt,Ant,Sig: Nodo;
Begin
For I:= 1 to Cantidad(Ini) do
Begin
Ant:=Ini;
C:=0;
While (Ant^.psig<>nil) do
Begin
C:=C+1;
Sig:=Ant^.Psig;
If (Ant^.info<Sig^.info) then
Begin
Ant^.psig:=Sig^.psig;
Sig^.psig:=Ant;
If C=1 then Ini:=Sig
Else
Begin
Anterior (Ini,Ant,AAnt);
AAnt^.Psig:= Sig;
End;
End
Else
Begin
Ant:=Ant^.psig;
End
End;
End;
End;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ordenar Listas Enlazadas

Publicado por Pilar (1 intervención) el 19/05/2009 10:58:03
Me parece muy buen apunte, pero no termino de entender el código.
Nodo es un puntero de la lista que estoy intentando ordenar, ¿no? ¿O es la propia lista en sí? No tengo muy claro ese término.

Luego, ¿de donde sacas el subprograma "Anterior"?.

Siento hacer tantas preguntas, pero estoy iniciandome en la subprogramación y punteros es un tema que llevo fatal.

Muchas gracias por atenderme.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar