WinDWalker
Mitglied
Hi Leute
,
ich hab mich in letzter Zeit mit verketteten Listen Bäumen etc auseinandergesetzt.
Soweit funktioniert eigentlich alles
.
Aber eine Frage hab ich, ich hab hier ein kleines Beispielprg. geschrieben, das soweit funktioniert.
Nur wenn ich in dem Teil *** Neues beliebiges Objekt einfügen ***
das erste cout ein- und das zweite cout auskommentiere bekomm ich die Fehlermeldung
ie Anweisung in XXX verweist auf den Speicher in XXX, der Vorgang read konnte nicht ausgeführt werden ... .

Ich müsste aber doch mit previous = prev genauso nach oben wie mit next nach unten duch die Liste gehen können.
Wisst ihr was ich falsch mach und vorallen wie es richtig geht ?
Hier mal mein code:
vielen Dank schon mal für eure Mühe
WindWalker

ich hab mich in letzter Zeit mit verketteten Listen Bäumen etc auseinandergesetzt.
Soweit funktioniert eigentlich alles

Aber eine Frage hab ich, ich hab hier ein kleines Beispielprg. geschrieben, das soweit funktioniert.
Nur wenn ich in dem Teil *** Neues beliebiges Objekt einfügen ***
das erste cout ein- und das zweite cout auskommentiere bekomm ich die Fehlermeldung




Ich müsste aber doch mit previous = prev genauso nach oben wie mit next nach unten duch die Liste gehen können.
Wisst ihr was ich falsch mach und vorallen wie es richtig geht ?
Hier mal mein code:
Code:
#include<iostream>
using namespace std;
struct mvListe
{
int data;
mvListe *prev;
mvListe *next;
};
mvListe *neu = NULL;
mvListe *head = NULL;
mvListe *current= NULL;
void showList(mvListe *head, char const headline[]);
void main()
{
int i = 0;
for (i = 0; i < 10 ; i++)
{
neu = new mvListe;
neu->next = head;
head = neu;
neu->data = i;
}
showList(head,"Neue Liste");
//****************************** Neues erstes Objekt einfügen **********************************
neu = new mvListe;
neu->prev = head;
neu->next = neu->prev;
head = neu;
neu->data = 1024;
showList(head,"Neues erstes Element");
//****************************** Neues letztes Objekt einfügen ***********************************
neu = new mvListe;
current = head;
while (current->next!= NULL)
{
current = current->next;
}
neu->prev = current;
current->next = neu;
neu->next = NULL;
neu->data = 2048;
showList(head,"Neues letztes Element");
//****************************** Neues beliebiges Objekt einfügen *********************************
neu = new mvListe;
int j = 0;
int index = 5;
current = head;
while (j < index)
{
current = current->next;
j++;
}
neu->next = current->next;
current->next = neu;
neu->prev = current;
neu->data = 3072;
showList(head,"Neues beliebiges Element");
// cout << neu->prev->prev->prev->data << endl << endl; :confused:
cout << neu->next->next->next->data << endl << endl;
}
void showList(mvListe *head, char const headline[])
{
cout << headline << endl << endl;
current = head;
while (current != NULL)
{
cout << current->data << endl;
current = current->next;
}
cout << endl << endl;
}
C/C++ Code:
#include<iostream>
using namespace std;
struct mvListe
{
int data;
mvListe *prev;
mvListe *next;
};
mvListe *neu = NULL;
mvListe *head = NULL;
mvListe *current= NULL;
void showList(mvListe *head, char const headline[]);
void main()
{
int i = 0;
for (i = 0; i < 10 ; i++)
{
neu = new mvListe;
neu->next = head;
head = neu;
neu->data = i;
}
showList(head,"Neue Liste");
//****************************** Neues erstes Objekt einfügen **********************************
neu = new mvListe;
neu->prev = head;
neu->next = neu->prev;
head = neu;
neu->data = 1024;
showList(head,"Neues erstes Element");
//****************************** Neues letztes Objekt einfügen ***********************************
neu = new mvListe;
current = head;
while (current->next!= NULL)
{
current = current->next;
}
neu->prev = current;
current->next = neu;
neu->next = NULL;
neu->data = 2048;
showList(head,"Neues letztes Element");
//****************************** Neues beliebiges Objekt einfügen *********************************
neu = new mvListe;
int j = 0;
int index = 5;
current = head;
while (j < index)
{
current = current->next;
j++;
}
neu->next = current->next;
current->next = neu;
neu->prev = current;
neu->data = 3072;
showList(head,"Neues beliebiges Element");
// cout << neu->prev->prev->prev->data << endl << endl; :confused:
cout << neu->next->next->next->data << endl << endl;
}
void showList(mvListe *head, char const headline[])
{
cout << headline << endl << endl;
current = head;
while (current != NULL)
{
cout << current->data << endl;
current = current->next;
}
cout << endl << endl;
}
C/C++ Code:
#include<iostream>
using namespace std;
struct mvListe
{
int data;
mvListe *prev;
mvListe *next;
};
mvListe *neu = NULL;
mvListe *head = NULL;
mvListe *current= NULL;
void showList(mvListe *head, char const headline[]);
void main()
{
int i = 0;
for (i = 0; i < 10 ; i++)
{
neu = new mvListe;
neu->next = head;
head = neu;
neu->data = i;
}
showList(head,"Neue Liste");
//****************************** Neues erstes Objekt einfügen **********************************
neu = new mvListe;
neu->prev = head;
neu->next = neu->prev;
head = neu;
neu->data = 1024;
showList(head,"Neues erstes Element");
//****************************** Neues letztes Objekt einfügen ***********************************
neu = new mvListe;
current = head;
while (current->next!= NULL)
{
current = current->next;
}
neu->prev = current;
current->next = neu;
neu->next = NULL;
neu->data = 2048;
showList(head,"Neues letztes Element");
//****************************** Neues beliebiges Objekt einfügen *********************************
neu = new mvListe;
int j = 0;
int index = 5;
current = head;
while (j < index)
{
current = current->next;
j++;
}
neu->next = current->next;
current->next = neu;
neu->prev = current;
neu->data = 3072;
showList(head,"Neues beliebiges Element");
// cout << neu->prev->prev->prev->data << endl << endl; :confused:
cout << neu->next->next->next->data << endl << endl;
}
void showList(mvListe *head, char const headline[])
{
cout << headline << endl << endl;
current = head;
while (current != NULL)
{
cout << current->data << endl;
current = current->next;
}
cout << endl << endl;
}
WindWalker