Pascal/Turbo Pascal - Urgente!!!! ordenar una lista enlazada doblemente

 
Vista:

Urgente!!!! ordenar una lista enlazada doblemente

Publicado por Raymond (20 intervenciones) el 24/02/2001 23:05:52
Nesecito saber como puedo acomodar una lista doble o ordenarla de mayor a menor o biceversa lo antes posible. O, como me devuelvo a el nodo anetrior, tengo una tarea para el lunes 26/02/01

El que pueda responder le estare muy agradecido.

Gracias..
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:Urgente!!!! ordenar una lista enlazada doblemen

Publicado por Cris (29 intervenciones) el 25/02/2001 09:08:01
Hola de nuevo, puedes hacer lo que te dije en tu pregunta anterior, solo tienes que usar algun metodo de ordenamiento tradicional, (de burbuja..)
Pero en este caso puedes hacer dos cosas, la primera que es la mas sencilla es tener un registro temporal para meter ahi los datos mientras haces el cambio ( suponiendo que tienes los registros 1, 2 y 3, y quieres ordenarlo; suponiendo que la ordenacion quedara 2, 1 y 3, simplemente comparas 1 con 2, el menor o mayor, segun sea el caso, va primero, asi que puedes copiar toda la informacion del registro 2 al registro temporal, copias la informacion del 1 al 2, y del temporal al 1, asi te quedaran volteados).
O puedes cambiar las ligas (esto es mas complicado asi que te recomiendo que uses el primero).

suponiendo que tienes estos datos:

type
puntero=^registro;
registro=record
nombre,direccion,telefono:string[20];
siguiente,anterior:puntero;
end;

var punt,temp,list:puntero;

begin
punt:=list^.siguiente; {suponiendo que list apunta al primer registro de la lista, a punt le das la direccion del segundo registro}

if(punt<>nil)then {por si acaso no hay mas registros}
begin
if(punt^.nombre < list^.nombre) then
begin
temp^:=punt^; {toda la informacion del registro al que apunta punt se copiara a temp, todo, nombre, direccion, telefono y los punteros}
punt^:=list^;
list^:=temp^;
end;
end.

y asi haces un ciclo donde compare todos los registros y los intercambie.
Espero te haya servido.
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

me urge...

Publicado por mario (1 intervención) el 02/04/2009 18:30:09
hola.. necesito un programa en pascal que me ordene y que me busque datos...
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