Hi Leute!
Ich will in einer doppelt verketteten Liste ein nachfolgendes Element löschen. Ich möchte z.B. hier den Knoten 2 löschen. Ich weiß, dass man da quasi Zeiger die auf den Knoten 2 zeigen umbeigen muss. Hab mir dazu auch schon eine Skize gemacht, aber in der Umsetzung geht's dann irgendwie nicht. Ich hab hier schon mal Code produziert, aber verstehe jetzt teilweise nicht mehr wie ich weitermachen soll. Könnt ihr mir vielleicht helfen?
Alles anzeigen
Ich will in einer doppelt verketteten Liste ein nachfolgendes Element löschen. Ich möchte z.B. hier den Knoten 2 löschen. Ich weiß, dass man da quasi Zeiger die auf den Knoten 2 zeigen umbeigen muss. Hab mir dazu auch schon eine Skize gemacht, aber in der Umsetzung geht's dann irgendwie nicht. Ich hab hier schon mal Code produziert, aber verstehe jetzt teilweise nicht mehr wie ich weitermachen soll. Könnt ihr mir vielleicht helfen?
Quellcode
- #include<iostream>
- using namespace std;
- struct node
- {
- node* previous;
- int value;
- node* next;
- }
- void showList(node *nextElement, node *liste)
- {
- nextElement = liste;
- while(nextElement != NULL)
- {
- cout << nextElement->value << endl;
- nextElement = nextElement->next;
- }
- }
- void deleteAfter(node *list)
- {
- list->next->previous = list->previous;
- list->previous->next = list->next;
- return list->previous;
- }
- int main()
- {
- node *liste1, *liste2, *liste3, *liste4;
- node *nextElement = 0;
- liste1 = new node;
- liste1->value = 1;
- liste2 = new node;
- liste1->value = 2;
- liste3 = new node;
- liste3->value = 3;
- liste4 = new node;
- liste4->value = 4;
- liste1->next = liste2;
- liste2->next = liste3;
- liste3->next = liste4;
- liste4->next = NULL;
- deleteAfter(liste2);
- return 0;
- }