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 ... .
![Frown :( :(](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f641.png)
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
![Smile :) :)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
ich hab mich in letzter Zeit mit verketteten Listen Bäumen etc auseinandergesetzt.
Soweit funktioniert eigentlich alles
![Wink ;) ;)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f609.png)
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
![Big grin :D :D](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f600.png)
![Confused :confused: :confused:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f615.png)
![Frown :( :(](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f641.png)
![Frown :( :(](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f641.png)
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