Verkettete Liste - einfuegen
-
Guten Abend zusammen,
ich soll einen Spielzug(besteht aus x,y-koordinate und einen char(zeichen) ob x oder o ist --> Spiel ist Tic Tac toe oder so ähnlich, ist aber egal jetzt)
Irgendwo zwischen einfügen.
Eine verkettete liste ist schon vorhanden.Unser lehrer sagte wie sollen eine Pointer darauf zeigen lassen wo der neue Spielzug einzufügen ist, also wenn der Üointer auf den 2. Spielzug zeigt dann soll ich den neuen davor einfügen.
Nur wie kann ich den pointer "steuern"? Ich mein wie kann der "Kunde" dem Pointer sagen, dass er auf den 2. Spielzug der Kette zeigen soll, damit ich den neuen dann davor einfügen kann?Soll ich die Spielzüge durchnummerieren und der "Kunde" gibt dann eine Zahl ein: 2 --> und ich gehe dann mit einer schleife bis 2. Spielzug und lasse dann den Pointer dahin zeigen?
War das so gemeint, oder was haltet ihr davon? Wie würde es man sonst machen?
mfg gusti
-
So die Frage von oben ist immer noch offen.
Next:
Der Lehrer sagte wie sollen das folgende Unterprogramm fertigstellen, da es so noch nicht ganz funktioniert:
Zeile 30-34 fügen ja den neuen Spielzug ein.
Aber Zeile 37-39 macht ja alles kaputt wieder oder?
Was soll man damit bezwecken?Danke im voraus!
spielzug* insert_before(spielzug * liste, spielzug * element_before, spielzugfile * neuer_zug) { spielzug* act_spielzug = NULL; if (element_before == NULL) { fprintf(stderr,"element position impossible(NULL)!"); return(liste); } act_spielzug = (spielzug* )malloc(sizeof(spielzug)); if (act_spielzug == NULL) { exit(-1); } act_spielzug->posx=neuer_zug->posx; act_spielzug->posy=neuer_zug->posy; act_spielzug->zeichen=neuer_zug->zeichen; act_spielzug->next=NULL; act_spielzug->prev=NULL; if (liste == NULL) { liste = act_spielzug; } else { act_spielzug->prev=element_before->prev; act_spielzug->prev->next= act_spielzug; element_before->prev=act_spielzug; act_spielzug->next = element_before; act_spielzug->next = liste; liste->prev = act_spielzug; liste = act_spielzug; } return(liste); }
-
gusti1122 schrieb:
Der Lehrer sagte wie sollen das folgende Unterprogramm fertigstellen, da es so noch nicht ganz funktioniert:
...
Aber Zeile 37-39 macht ja alles kaputt wieder oder?
Was soll man damit bezwecken?Dass du dir überlegst wie es richtig funktioniert.
Überleg dir welche Fälle es gibt. (einfügen mittendrin, vor dem ersten Element)