Bin Neuling, vielleicht kann mit jemand folgendes erklären:
Das ist mein Struct:
struct zustand_note
{
std::vector<int> werte; // die Zahlen in einen Vektor verpackt
zustand_note *next; // Verknüpfung zum Nachfolger
};
zustand_note *anker = 0; // Anfang der Liste
ein Vektor zum Speichern von intWerten und ein Zeiger auf das nächste Element von Struct.
2 Funktionen:
void zustand_note_ausgeben(zustand_note zx)
{
std::cout << zx.werte[1] << " " << zx.werte[2] << " " << zx.werte[3] << std::endl;
std::cout << zx.werte[4] << " " << zx.werte[5] << " " << zx.werte[6] << std::endl;
std::cout << zx.werte[7] << " " << zx.werte[8] << " " << zx.werte[9] << std::endl << std::endl;
}
Zum ausgeben der Werte des Stuct, und
void zustand_note_init(zustand_note zy, int int1, int int2, int int3, int int4, int int5, int int6, int int7, int int8, int int9)
{
zy.werte[1] = int1;
zy.werte[2] = int2;
zy.werte[3] = int3;
zy.werte[4] = int4;
zy.werte[5] = int5;
zy.werte[6] = int6;
zy.werte[7] = int7;
zy.werte[8] = int8;
zy.werte[9] = int9;
}
zum initialisieren der werte. Jetzt mein Problem:
int main(int argc, char *argv[])
{
zustand_note startzustand;
zustand_note endzustand;
std::cout << "Programm 8-Puzzle-Breitensuche wird gestartet!\n";
zustand_note_init(startzustand, 2, 8, 3, 1, 6, 4, 7, 0, 5);
zustand_note_ausgeben(startzustand); //erste Ausgabe
zustand_note *node = new zustand_note;
node->werte = startzustand.werte;
node->next = anker;
zustand_note_ausgeben(node->werte);// zweite Ausgabe
zustand_note_init(endzustand, 1, 2, 3, 8, 0, 4, 7, 6, 5);
zustand_note_ausgeben(endzustand);// dritte Ausgabe
zustand_note_ausgeben(startzustand);// vierteAusgabe
zustand_note_ausgeben(node->werte);// fünfte Ausgabe
system("PAUSE");
return EXIT_SUCCESS;
};
Ich initialisiere den Startzustand und kopiere seine Werte in den neuen Zeiger auf ein Structelement. danach initialisiere ich den endzustand.
Jetzt kommt die Ausgabe:
Programm 8-Puzzle-Breitensuche wird gestartet!
2 8 3 //Ausgabe 1 alls richtig startzustand initialsiert und
1 6 4 // werte richtig
7 0 5
2 8 3 //Ausgabe 2 alls richtig *node initialsiert und werte richtig kopiert
1 6 4
7 0 5
1 2 3 //Ausgabe 3 alls richtig endzustand initialsiert und
8 0 4 // werte richtig
7 6 5
1 2 3 // erneute Ausgabe von startzustand gibt mir die werte des endzustand???
8 0 4 // wie kann das sein, hab doch nichts geändert
7 6 5
1 2 3 // erneute Ausgabe von *node gibt mir auch die werte des endzustand???
8 0 4
7 6 5
Drücken Sie eine beliebige Taste . . .
Kann mir das bitte iner erklären oder lösen?