Ich setze Spielbrett bewegt sich in diese Warteschlange, für die "geparkten Auto" -Spiel, und es sollte mit 75 Zügen kommen, um das Rätsel zu lösen. Die Warteschlange wird jedoch weiterhin überfüllt, was dazu führt, dass eine Verschiebung nicht in die Warteschlange eingereiht wird, wodurch die Lösung mehr als 75 Züge enthält. Hinweis: Die Größe der Warteschlange kann nicht geändert werden, sie ist konstant. Irgendwelche Ideen?Backtracing Queue
int enqueue(position* p){
Q[qrear] = p;
qrear = qrear + 1;
if (qrear == QueueArraySize) {
qrear = 0;
}
qsize = qsize + 1;
return 0;
} /*End of insert()*/
position* dequeue(){
if (qsize == 0) {
printf("Queue Underflow \n");
return NULL;
}
else {
position* temp = Q[qfront];
qfront = qfront + 1;
if (qfront == QueueArraySize) {
qfront = 0;
}
qsize = qsize - 1;
return temp;
}
}
Wie initialisierst du Q? – koper89
Und ich würde vorschlagen, die Struktur zu Q in diesen Funktionen zu übergeben, mit globalen Variablen ist nicht zu gut Idee. Struktur, die Größe, Rückseite, Front und Größe enthält. Und du solltest NULL in Q [qfront] setzen, nachdem du es zu temp genommen hast. – koper89
@ koper89 Position * Q [QueueArraySize]; –