Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program listePreNext (input, output);
- type
- tRefListe = ^tListe;
- tListe = record
- Info : integer;
- next : tRefListe;
- prev : tRefListe;
- end;
- var
- Anfangszeiger,
- pZeiger : tRefListe;
- Feldgrosse,
- i,
- EingabeWert : Integer;
- procedure Sortieren (var ioListenAnfang : tRefliste);
- var
- Zeiger,
- Backup : tRefListe;
- Durchlauf : tRefListe;
- begin
- Zeiger := ioListenAnfang;
- while Zeiger^.Next <> NIL do
- begin
- if Zeiger^.Info < Zeiger^.Next^.Info then
- Zeiger := Zeiger^.next
- else if (Zeiger^.Info > Zeiger^.Next^.info) then { Am Anfang Einfügen oder suchen wo}
- begin
- Backup := Zeiger^.Next;
- if Backup^.Info < ioListenanfang^.Info then
- begin
- writeln ('Drinnen');
- Zeiger^.Next := Backup^.Next;
- Backup^.Next := ioListenAnfang;
- ioListenAnfang := Backup;
- end
- else
- begin {Einfug Punkt suchen :D }
- Durchlauf := ioListenAnfang;
- While (Durchlauf <> Backup) and (Durchlauf^.Next^.Info < Backup^.Info) do
- begin
- Durchlauf := Durchlauf^.next;
- end;{WHILE PLATZ FINDEN}
- Zeiger^.Next := Backup^.Next;
- Backup^.Next := Durchlauf^.next;
- Durchlauf^.Next := Backup;
- end;
- end;
- end;
- end; {Function}
- begin
- Anfangszeiger := NIL;
- Write ('Wie Lang soll die Liste sei: ');
- readln (Feldgrosse);
- for i := 1 to Feldgrosse do
- begin
- Write ('Info Wert: ');
- readln (EingabeWert);
- new (pZeiger);
- pZeiger^.Info := EingabeWert;
- pZeiger^.Next := Anfangszeiger;
- if Anfangszeiger <> NIL then
- Anfangszeiger^.prev := pZeiger;
- Anfangszeiger := pZeiger;
- end;
- Sortieren (AnfangsZeiger);
- pZeiger := Anfangszeiger;
- while pZeiger <> NIL do
- begin
- writeln (pZeiger^.info);
- pZeiger := pZeiger^.next;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement