www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Softwaretechnik und Programmierung" - doppelt verkettete Liste
doppelt verkettete Liste < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Softwaretechnik und Programmierung"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

doppelt verkettete Liste: Ausgabe
Status: (Frage) beantwortet Status 
Datum: 21:28 Mi 30.03.2011
Autor: bandchef

Aufgabe
Löschen eines nachfolgenden Elements in einer doppelt verkettete Listen.


Da ich ja ein nachfolgendes Element in einer doppelt verketteten Liste löschen will möchte ich mir die Liste vor und nach dem Löschen ausgeben. Leider spuckt mir der Compiler einen Fehler aus. Nämlich in der Funktionendeklaration für die Ausgabe der Liste. Ich nenne diese showList(). Der Compiler sagt, dass 'noe' gefolgt von 'void' nicht zulässig sei.

Ich weiß leider nicht was ich falsch gemacht haben könnte. Könnt ihr mir helfen?

Hier der Code:

1: #include<iostream>
2: using namespace std;
3:
4:
5: struct node
6: {
7: node* previous;
8: int value;
9: node* next;
10: }
11:
12:
13:
14: void showList(node *nextElement, node *liste)
15: {
16: nextElement = liste;
17: while(nextElement != NULL)
18: {
19: cout << nextElement->value << endl;
20: nextElement = nextElement->next;
21: }
22: }
23:
24:
25:
26: void *deleteAfter(node *list)
27: {
28: list->next->previous = list->previous;
29: list->previous->next = list->next;
30: }
31:
32:
33:
34: int main()
35: {
36: node *liste1, *liste2, *liste3, *liste4;
37: node *nextElement = 0;
38:
39:
40: liste1 = new node;
41: liste1->value = 1;
42:
43: liste2 = new node;
44: liste1->value = 2;
45:
46: liste3 = new node;
47: liste3->value = 3;
48:
49: liste4 = new node;
50: liste4->value = 4;
51:
52: liste1->next = liste2;
53: liste2->next = liste3;
54: liste3->next = liste4;
55: liste4->next = NULL;
56:
57:
58: showList(nextElement, liste1);
59: //deleteAfter(liste2);
60:
61:
62: return 0;
63: }



        
Bezug
doppelt verkettete Liste: Antwort
Status: (Antwort) fertig Status 
Datum: 00:03 Do 31.03.2011
Autor: felixf

Moin!

>
1: struct node
2: >  {
3: >   node* previous;
4: >   int value;
5: >   node* next;
6: >  }
7:
8: > void showList(node *nextElement, node *liste)
9: >  {
10: >   nextElement = liste;
11: >   while(nextElement != NULL)
12: >   {
13: >   cout << nextElement->value << endl;
14: >   nextElement = nextElement->next;
15: >   }
16: >  }


Es fehlt ein Semikolon nach den geschweiften Klammern vom struct. Mit der aktuellen Syntax denkt C++ beim void, dass du eine Variable vom Typ node mit dem Namen void anlegen willst (oder eine Funktion namens void definieren willst, die einen node zurueckgibt) , was nicht geht. (Spaetestens dannach kommt dann die Frage, was showList direkt hinter der Variablendeklaration soll.)

Also, fueg ein Semikolon ein, und das sollte dann gehen :-)

Eine Frage ist aber noch: warum uebergibst du den Parameter nextElement an showList? Der Wert wird doch gar nicht gebraucht, du ueberschreibst ihn sofort.

LG Felix


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Softwaretechnik und Programmierung"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]