Huhu,
Seit Tagen hänge ich nun an dieser Aufgabe,
aber ich bekomme dort keinen Durchblick.
Google hilft mir nicht weiter, da ich noch keine Klassen
beherrsche, und auch diverse Buecher helfen
mir nicht weiter.
Wo koennte ich anfangen?
Ich bitte um Hilfe...
/*
Aufgabe:
- verkettete Liste so ändern, dass das Listenende
nicht bei jedem Einfuegen neu ermittelt wird
sondern in einem eigenem Handle gespeichert wird.
*/
Btw:Bitte keine Lösung, nur Ansaetze, da dies eine Einsende
aufgabe ist.
Danke
Seit Tagen hänge ich nun an dieser Aufgabe,
aber ich bekomme dort keinen Durchblick.
Google hilft mir nicht weiter, da ich noch keine Klassen
beherrsche, und auch diverse Buecher helfen
mir nicht weiter.
Wo koennte ich anfangen?
Ich bitte um Hilfe...
/*
Aufgabe:
- verkettete Liste so ändern, dass das Listenende
nicht bei jedem Einfuegen neu ermittelt wird
sondern in einem eigenem Handle gespeichert wird.
*/
Btw:Bitte keine Lösung, nur Ansaetze, da dies eine Einsende
aufgabe ist.
Danke

Code:
/* #################################################
Eine einfach verkettete Liste
################################################# */
#include "stdafx.h"
using namespace System;
ref struct listenelement {
String ^daten;
listenelement ^next;
};
//neues Element am Ende der Liste einfuegen
void einfuegen(String ^datenneu, listenelement ^%listenAnfang) {
listenelement ^hilfsHandle; //ein Hilfshandle zum Wandern in der Liste
hilfsHandle = listenende; //Hilfshandle an den Anfang der Liste setzen
while (hilfsHandle->next != nullptr) //Durch die Liste gehen, bis das letzte Element erreicht ist
hilfsHandle = hilfsHandle->next;
hilfsHandle->next = gcnew listenelement; //Neues Element am Ende der Liste einf?en
hilfsHandle = hilfsHandle->next; //Hilfshandle auf das neue Element setzen
hilfsHandle->daten=datenneu; //Zeichenkette im neuen Element eintragen
//nullptr wird automatisch zugewiesen!
}
//Alle Elemente der Liste ausgeben
void ausgeben(listenelement ^listenanfang) {
//ein Hilfshandle zum Wandern in der Liste
listenelement ^hilfsHandle;
hilfsHandle = listenanfang;
//erstes Element ausgeben
Console::WriteLine("{0}",hilfsHandle->daten);
//Solange das Ende der Liste noch nicht erreicht ist:
//Hilfshandle auf das n?hste Element setzen und die Daten ausgeben
while (hilfsHandle->next != nullptr) {
hilfsHandle = hilfsHandle->next;
Console::WriteLine("{0}",hilfsHandle->daten) ;
}
}
int main(array<System::String ^> ^args)
{
//Handle auf den Anfang der Liste
listenelement ^listenanfang;
//das erste Element per Hand erzeugen
listenanfang = gcnew listenelement;
//Zeichenkette in das erste Element schreiben
//nullptr wird automatisch gesetzt
listenanfang->daten="Element 0";
//in einer Schleife mehrere Elemente einf?en
for (Int32 schleife=1;schleife<3;schleife++)
einfuegen("Element "+schleife,listenanfang);
//die Liste ausgeben
ausgeben(listenanfang);
return 0;
}