fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6.  
  7. //Die Struktur für die Listenelemente
  8. struct listenelement
  9. {
  10. string daten;
  11. listenelement *next;
  12. };
  13.  
  14. //Eine Funktion zu Anhängen von Elementen an die Liste
  15. listenelement *anhaengen (string datenneu, listenelement *listenende)
  16. {
  17. listenende->next = new(listenelement);
  18. listenende = listenende->next;
  19. listenende->daten = datenneu;
  20. listenende->next = nullptr;
  21.  
  22. return listenende;
  23. }
  24.  
  25. //Eine Funktion zum ausgeben aller Elemente
  26. void ausgabe(listenelement *listenanfang)
  27. {
  28. //Ein lokaler Hilfszeiger, um in deer Liste wandern zu können
  29. listenelement *hilfszeiger;
  30. //den Hilfszeiger auf den Anfang der Liste setzen
  31. hilfszeiger = listenanfang;
  32. cout << hilfszeiger->daten << '\n';
  33.  
  34. while (hilfszeiger->next != nullptr)
  35. {
  36. hilfszeiger = hilfszeiger->next;
  37. //Daten ausgeben
  38. cout << hilfszeiger->daten << '\n';
  39. }
  40. }
  41.  
  42. //die Liste leeren und Speicher freigeben
  43. void ende(listenelement *listenanfang)
  44. {
  45. //Ein lokaler Hilfszeiger, um in der Liste wandern zu können
  46. listenelement *hilfszeiger;
  47. //Solange noch Elemente in der Liste sind
  48. while (listenanfang != nullptr)
  49. {
  50. hilfszeiger = listenanfang;
  51. listenanfang = listenanfang->next;
  52. //den Speicher für das herausgenommene Element freigeben
  53. delete(hilfszeiger);
  54. }
  55. }
  56.  
  57.  
  58. int main()
  59. {
  60.  
  61. //ein Zeiger auf den Anfang der Liste setzen
  62. listenelement *listenanfang, *listenende;
  63. //das erste Element erzeugen
  64. listenanfang = new(listenelement);
  65. //Daten in das erste Element schreiben
  66. listenanfang->next = nullptr;
  67. listenanfang->daten = "Daten in Liste 1";
  68.  
  69. listenende = listenanfang;
  70.  
  71. //und jetzt weitere Elemente erzeugen
  72. listenende = anhaengen("Daten in Liste 2", listenende);
  73. listenende = anhaengen("Daten in Liste 3", listenende);
  74. listenende = anhaengen("Daten in Liste 4", listenende);
  75. listenende = anhaengen("Daten in Liste 5", listenende);
  76.  
  77.  
  78.  
  79. //die Liste ausgeben
  80. ausgabe(listenanfang);
  81. //die Liste wieder abbauen
  82. ende(listenanfang);
  83.  
  84. return 0;
  85. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
Daten in Liste 1
Daten in Liste 2
Daten in Liste 3
Daten in Liste 4
Daten in Liste 5