hallo leute!
solangsam bin ich echt am verzweifeln... ich sitze nun schon fast den ganzen tag an dem einen problem und hoffe ihr könnt mir weiterhelfen!
wie ihr aus dem titel ja schon entnehmen könnt, geht es dabei um doppelt verlinkte listen.
ich verstehe zwar was der sinn des ganzen ist, aber wenn es zur umsetzung kommt versteh ich garnix mehr.
ich versuche nun mit der lösung der aufgabe das ganze zu verstehen, komm aber auch da nicht wirklich weiter.
hab mal kommentiert was ich dazu denke... aber beim schreiben hab ich schon gemerkt dass das alles nicht so wirklich stimmen kann...
vielleicht kann mir ja einer von euch helfen! vielleicht hat ja einer von euch lust mir diesen code einmal für ganz doofe zu erklären. bin wirklich am verzweifeln!! oder kennt ein super tutorial wo die vorgehensweise beschrieben ist... ich find leider nichts
ganz lieben dank!!
(sorry für den langen code...)
solangsam bin ich echt am verzweifeln... ich sitze nun schon fast den ganzen tag an dem einen problem und hoffe ihr könnt mir weiterhelfen!
wie ihr aus dem titel ja schon entnehmen könnt, geht es dabei um doppelt verlinkte listen.
ich verstehe zwar was der sinn des ganzen ist, aber wenn es zur umsetzung kommt versteh ich garnix mehr.
ich versuche nun mit der lösung der aufgabe das ganze zu verstehen, komm aber auch da nicht wirklich weiter.
hab mal kommentiert was ich dazu denke... aber beim schreiben hab ich schon gemerkt dass das alles nicht so wirklich stimmen kann...
vielleicht kann mir ja einer von euch helfen! vielleicht hat ja einer von euch lust mir diesen code einmal für ganz doofe zu erklären. bin wirklich am verzweifeln!! oder kennt ein super tutorial wo die vorgehensweise beschrieben ist... ich find leider nichts

ganz lieben dank!!
(sorry für den langen code...)
Code:
#include <iostream>
#include <string>
using namespace std;
struct Knoten //Knoten erstellen
{
Knoten *next; //pfeil nach rechts
Knoten *last; //pfeil nach links
string info; //wort
};
void haengAn(Knoten *& kn, string s)//übergab von speiher a und wort
{
Knoten * ptr = new Knoten; //speicherplatz für den neuen knoten dynamisch erstellen
ptr->last = kn; //zeigt auf den vorherigen knoten
ptr->info = s; //wort übergabe
ptr->next = NULL; //nächster zeiger zeigt auf null aber warum?
Knoten * ptr2 = ptr->last; //neuer behälter verlinkt mit behälter davor(?)
if(ptr2 != NULL) //wenn ptr2 nicht leer ist dann
ptr2->next = ptr;//neuer behälter bekommt neue verlinkung
kn = ptr; //übergabe mit dem neuen wort an das hauptprogramm
}
string gibAlle(Knoten * kn)
{
Knoten *ptr = kn; //knoten bekommt wert vom knoten aus unterprogramm
string s = "";//leerzeichen
if(ptr != NULL)//wenn der zeiger auf etwas zeigt dann..//
while(ptr->last != NULL)//..und der zeiger nach links nicht "leer" ist..
ptr = ptr->last;//wird neue verlinkung erstellt
while(ptr != NULL)//******** wieso wird das hier nochmal abgefragt?
{
s += ptr->info +" ";//aneinanderreihen der strings
ptr = ptr->next;//verlinkung zum nächsten knoten
}
delete ptr;
return s;
}
void loesch(Knoten *&kn) //zum löschen eines knotens
{
Knoten * ptr = kn;//ptr bekommt den wert von kn
while(ptr != NULL)//wenn dieser nicht null ist dann...
{
kn = kn->last;//ergibt für mich überhaupt keinn sinn
delete ptr;
ptr = kn;
}
}
void main()
{
Knoten* speicherA = NULL;// erster knoten zeigt auf null
Knoten* speicherB = NULL;//erster knoten zeigt auf null
haengAn(speicherA, "Fischers");
haengAn(speicherA, "Fritze");
haengAn(speicherB, "kauft");
haengAn(speicherB, "frische");
haengAn(speicherB, "fesche");
haengAn(speicherB, "fette");
haengAn(speicherB, "Fische");
std::cout << gibAlle(speicherA) << std::endl;
std::cout << gibAlle(speicherB) << std::endl;
haengAn(speicherA, gibAlle(speicherB));
loesch(speicherB);
std::cout << gibAlle(speicherA) << std::endl;
std::cout << gibAlle(speicherB) << std::endl;
loesch(speicherA);
}