Pascal/Turbo Pascal - AYUDA URGENTE POR FAVOR!!!!!

 
Vista:

AYUDA URGENTE POR FAVOR!!!!!

Publicado por DANIELA (1 intervención) el 15/04/2005 21:56:15
HOLA A TODOS Y A TODAS, NECESITO AYUDA URGENTE, COMO PUEDO ORDENAR MEDIANTE ESTE PROCEDIMIENTO, LOS NUMEROS QUE YO INGRESO, ES DECIR , TENDRIA QUE IR PREGUNTANDO SI LLEGO AL FINAL DE LA LISTA O SI ES MENOR O IGUAL Y QUE INSERTE, PERO NO PUEDO NO SE COMO : ( SI ALGUIEN ME PUEDE AYUDAR SE LO AGRADERIA BASTANTE !!!

Procedure inserta (var lista:tipopuntero; nom:string);
Var
nuevo:tipopuntero;
aux:tipopuntero;
begin
new(nuevo);
nuevo^.nom:=nom;
nuevo^.sig:=nil;
nuevo^.ant:=nil;

If listavacia(lista) then
lista:=nuevo
else
begin
if (lista^.sig=nil) then
lista^.sig:=nuevo
else
begin
aux:=lista;
while (aux^.sig <> nil ) do
aux:=aux^.sig;
aux^.sig:=nuevo;
nuevo^.ant:=aux;
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:AYUDA URGENTE POR FAVOR!!!!!

Publicado por Roberto Garcia Garcia (41 intervenciones) el 16/04/2005 01:53:23
Procedure inserta_ordenado (var lista:tipopuntero; nom:string);
Var
nuevo:tipopuntero;
aux:tipopuntero;
menor:Boolean;

begin
new(nuevo);
nuevo^.nom:=nom;
nuevo^.sig:=nil;
nuevo^.ant:=nil;

If listavacia(lista) then
lista:=nuevo
else
begin
aux:=lista;
menor:=false;
while (aux^.sig <> nil) do begin
if nombre < aux^.nombre then begin
menor:=true;
break;
end
aux:=aux^.sig;
end;

if menor then begin
if aux=lista then begin
lista:=nuevo;
aux^.ant:=nuevo;
nuev .sig:=aux;
end
else begin
aux^.ant^.sig:=nuevo;
nuevo^.ant:=aux^.ant
aux^.ant:=nuevo;
nuevo^.sig:=aux;
end
end
else begin
aux^.sig:=nuevo;
nuevo^.ant:=aux;
end
end
end;

Ceo que queda asi
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