Advertisement
apfel2kuchen

Liste funktionierend

Nov 27th, 2014
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. program eigeneListe (input, output);
  2.  
  3. type
  4. tRefListe = ^tListe;
  5. tListe = record
  6. Info : Integer;
  7. next : tRefListe;
  8. end;
  9. var
  10. RefListe : tRefListe;
  11. first : tRefListe;
  12.  
  13. procedure ListeEinlesen (var iOutRefliste : tRefliste);
  14. var
  15. eingabe : char;
  16. wert : integer;
  17.  
  18. begin
  19. repeat
  20. Write ('Ist es eine Leere Liste? Tippen Sie "y" = yes und "n" = no: ');
  21. readln (Eingabe);
  22. until (eingabe = 'y') or (eingabe = 'n');
  23. if eingabe = 'y' then
  24. begin
  25. repeat
  26. Write ('Geben Sie einen Wert des Listenelementes ein >= 0, Eingabe Beenden mit -1: ');
  27. readln (wert);
  28. if wert >= 0 then
  29. begin
  30. new (iOutRefliste);
  31. iOutRefliste^.Info := Wert;
  32. iOutRefliste^.Next := first;
  33. first := iOutRefliste;
  34. writeln (iOutRefliste^.Info);
  35. end;
  36. first := iOutRefliste; {First zeigt auf das Zuletzt eingegebene}
  37. until wert <= 0;
  38. Writeln ('Einlesen wurde Beendet')
  39. end {If (Y) --> Liste hat Werte!}
  40. else
  41. iOUtRefliste := NIL;
  42. end;
  43.  
  44. procedure ListeAusgeben (inRefliste : tRefListe);
  45. begin
  46. inRefliste := first; {inRefListe zeigt auf das Erste ListenElement}
  47. Writeln ('>> Ausgabe der Liste <<');
  48. while (inRefliste <> NIL) do
  49. begin
  50. writeln (inRefliste^.Info);
  51. inRefliste := inRefliste^.Next;
  52. end;{WHILE ---> Ende der Liste}
  53. end;{Ende Procedure Ausgabe}
  54.  
  55.  
  56. procedure ListeSortieren (iOutRefliste : tRefListe);
  57. var
  58. Zeiger : tRefListe;
  59. begin
  60. Zeiger := IOutRefliste;
  61. Writeln ('YEAAAAAAAAAAA');
  62. if (IOutRefliste = NIL) then
  63. writeln ('Die Liste ist leer')
  64. else
  65. begin
  66. while (zeiger^.Next <> NIL) do
  67. begin
  68. writeln ('IN WHILE');
  69. {Fall 1: IOutRefliste > Kleiner als nächstes Element, dann mache nichts }
  70. if IOutRefliste^.Info <= Zeiger^.Next^.Info then
  71. begin
  72. writeln ('Es wird nichts verändert');
  73. zeiger := zeiger^.Next;
  74. end;
  75.  
  76. end; {While Schleife}
  77. end; {Ende Else (Liste nicht leer)}
  78.  
  79. end; {ListeSortieren}
  80.  
  81.  
  82.  
  83. begin
  84. first := nil;
  85. ListeEinlesen (Refliste);
  86. ListeSortieren (Refliste);
  87. ListeAusgeben (Refliste);
  88.  
  89.  
  90. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement