Реализую список и никак не могу решить ошибку в методе viewNotes(). Вроде бы в цикле while он перебирает все элементы до конечного, но выводит только первый элемент списка. Месяца 2 назад начал изучать C++, а руки до этого дошли только недавно.
#include <iostream>
using namespace std;
struct Note {
unsigned int key = 0;
Note* next = NULL;
};
void createNote(Note* original) {
Note* tempNote = original;
while (tempNote->next != NULL) {
if (tempNote->next != NULL)
tempNote = tempNote->next; // ищем последний
}
Note* newNote = new Note; // создание нового элемента
newNote->key = tempNote->key + 1;
newNote->next = NULL;
original->next = newNote; //
cout << "New note created [" << newNote->key << "] <- [" << tempNote->key << "] " << endl;
}
void viewNotes(Note* original) { // В этом методе ошибка :(
Note* tempNote = original;
while (tempNote->next != NULL) {
cout << "Note [" << tempNote->key << "]" << endl;
tempNote = tempNote->next;
}
}
int main() {
Note* origin = new Note; // создание первого элемента
for (int i = 0; i < 5; ++i) { // создание ещё пяти
createNote(origin);
}
cout << endl; // пробел между строками
viewNotes(origin);
}