Я сейчас работаю свой путь через Стэнфордского открытой CS106B, и я бегу в проблему об уступке 3, Часть B. Я дал STRUCT узел следующим образом:Почему итерация в моем списке не работает?
struct Node {
string name; // my person's name
string killer; // who eliminated me
Node* next; // ptr to next node
Node(string name, Node* next) {...}
};
Я должен реализовать класс, который составляет список узлов. У меня есть конструктор, который работает нормально, но когда я пытаюсь выполнить итерацию по списку, моя программа сработает. Моя итерация код:
void AssassinsList::printGameRing() {
Node* current;
for(current = ring; current->next != NULL; current = current->next) {
cout << endl << " " << current->name << " is targeting " << current->next->name;
}
cout << endl << " " << current->name << " is targeting " << ring->name << endl;
}
Однако, если я использую для цикла в цикле число раз, я знаю, что нужно для определенной длины списка, он работает. Помогите? Ссылка на задание pdf: http://www.stanford.edu/class/cs106b/homework/3-tiles-assassins/spec.pdf
Спасибо!
Я как-то не могу обнаружить ошибки в коде, который вы указали. Вам нужно будет показать больше кода. –
в вашем printGameRing вы адресуете «следующий», но в вашей структуре (которую вы показываете) нет такого участника, как вы ожидаете от нас помощи, если вы не показываете соответствующие части? –
он проверяет перед current-> next! = NULL, так что текущая-> следующая будет тобой – sam