Zum Inhalt springen

neuling5

Mitglieder
  • Gesamte Inhalte

    6
  • Benutzer seit

  • Letzter Besuch

  1. Also irgendwie drehe ich mich immer im Kreis und komme kein Stück weiter, deshalb werde ich das Thema verkettete Listen erst einmal auf Eis legen und mich später noch einmal damit beschäftigen. Aber trotzdem Danke an alle die sich die Mühe gegeben haben mir zu helfen.
  2. Hallo RB, erst einmal Danke für deine Antwort. Also das ist der Stand der Dinge. Die erste List oben ist ja eine einfache liste in der ich mich mit dem zeiger immer vom Anfang bis zum Ende der List durch hangel um ein neues Element anzuhängen. In der zweiten List wollte ich dann einen Zeiger setzen der immer auf das Ende der Liste zeigt und ich das nächste Element durch ihn immer direkt ans Ende hängen kann. Das habe ich mittlerweile auch endlich geschafft. jetzt möchte ich die erste List zu einer doppelt verketteten machen die ich durch eine Funktion vorwärts und durch eine weitere Funktion rückwärts ausgeben kann. In meiner ref struct das Handle auf den vorigen Datensatz habe ich auch schon gesetzt aber wie ich dann den zeiger previous in der Funktion einfuegen genau verwende da bin ich noch etwas am grübeln und wie ich die funktion ausgabe rueckwaerts aufbauen muß auch kann das überhaupt gehen mit der ersten List oder brauche ich dafür doch die zweite mit dem zeiger ende:confused:
  3. Hatte es so versucht unter anderem #include "stdafx.h" using namespace System; //die Struktur für den verwalteten Heap ref struct beispiel { Int32 inhalt; beispiel ^next; }; void einfuegen(Int32 inhaltneu, beispiel ^ende) { //ende->next=ende; ende->next=gcnew beispiel; ende=ende->next; ende->inhalt=inhaltneu; } void ausgabe(beispiel ^anfang) { beispiel ^zeiger; zeiger=anfang; Console::WriteLine("{0}", zeiger->inhalt); while (zeiger->next != nullptr) { zeiger = zeiger->next; Console::WriteLine("{0}", zeiger->inhalt); } } int main(array<System::String ^> ^args) { beispiel ^ende; beispiel ^anfang; anfang=gcnew beispiel; anfang->inhalt=0; ende=anfang; for (Int32 schleife=1;schleife<5;schleife++) { einfuegen(schleife, ende); } ausgabe(anfang); return 0; } aber da kommt nur als Ausgabe 0 4 Also keine Liste mehr
  4. Hallo, erst einmal Danke für die schnellen Antworten. Hmm ich glaube ich habe meine Anfrage etwas falsch formuliert, das Endziel ist zwar eine doppelt verkettete Liste aber für den Anfang um die Sache etwas besser zu verstehen (hoffe ich) möchte ich die jetzt vorhandene einfache Liste nur etwas "frisieren". So wie sie im Moment geschrieben ist hangel ich mich ja immer vom Anfang zum Ende durch. Ich möchte jetzt durch das einfügen eines Zeigers auf das Ende erreichen das der "inhalt" über diesen immer gleich an das Ende eigefügt wird. Das unten verlinkte Tut hatte ich auch schon gefunden und mir eingehend angesehen aber so richtig ist der Groschen (nein muß ja jetzt Cent heißen) nicht gefallen
  5. Hallo Leute, wie mein Nick schon sagt bin neuling in diesem Thema. Ich habe eine Aufgabenstellung bekommen bei der ich aus einer einfach verketteten Liste eine doppelt verkettete machen soll. Als erstes wollte ich in der einfach verketteten Liste nun einen Zeiger einfügen der immer auf das ende der Liste zeigt und über diesen die neuen Werte "inhalt" anfügen. Doch leider scheitert es schon dabei sehe irgendwie vor lauter Bäume den Wald nicht mehr. Wer kann mir anhand des Beispiels helfen das ich es endlich richtig verstehe? Ich weis dass ich einen Zeiger haben muß "ende" der das Listenende nach jedem Einfügen ermittelt und an die Funktion main() zurückliefert und als Argument beim Einfügen übergebe ich dann das "ende" und nicht mehr den "anfang". aber wie erstelle ich hier den Zeiger ende das er immer auf das Listenende zeigt #include "stdafx.h" using namespace System; //die Struktur für den verwalteten Heap ref struct beispiel { int inhalt; beispiel ^next; }; void einfuegen(int inhaltneu, beispiel ^anfang) { beispiel ^zeiger; zeiger=anfang; while (zeiger->next!=nullptr) { zeiger=zeiger->next; } zeiger->next=gcnew beispiel; zeiger=zeiger->next; zeiger->inhalt=inhaltneu; } void ausgabe(beispiel ^anfang) { beispiel ^zeiger; zeiger=anfang; Console::WriteLine("{0}", zeiger->inhalt); while (zeiger->next != nullptr) { zeiger = zeiger->next; Console::WriteLine("{0}", zeiger->inhalt); } } int main(array<System::String ^> ^args) { beispiel ^anfang; anfang=gcnew beispiel; anfang->inhalt=0; for (int schleife=1;schleife<5;schleife++) { einfuegen(schleife, anfang); } ausgabe(anfang); return 0; }

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...