Итак, для класса я должен создать набор маршрутов полетов, используя двусвязный список.Предполагается, что программа распечатает исходящие поездки, а затем распечатает список обратных поездок (т.е. из Далласа в Хьюстон, затем из Хьюстона в Даллас).Все остальное вроде в порядке, но последние 4 дня или около того я не смог заставить работать свою функцию печати, я не могу сказать, что происходит не так.
void list::printList(struct NODE* NODE){
struct NODE* last;
cout<<"Flight Records for HowardAir Flight CSCI0136:"<<endl;
while (NODE != NULL) {
cout<< NODE->data << " to ";//<< NODE->data<<endl;
last = NODE;
NODE = NODE->next;
cout<<NODE->data<<endl;
}
cout<<""<<endl;
cout<<"Reverse Flight Records for HowardAir Flight CSCI0136:"<<endl;
while (last != NULL) {
cout<<last->data<< " to ";
last = last->prev;
cout<<last->data<<endl;
}
}
Вот как выглядит структура NODE:
struct NODE {
string data;
struct NODE* next;
struct NODE* prev;
};
Я слышал о некоторой путанице по поводу "последней" переменной в моей функции.Идея «последней» переменной заключается в том, что цикл while будет продолжать работать до тех пор, пока программа не напечатает последний узел в списке.Таким образом, «последний» просто означает, что мы возвращались к последнему / последнему узлу, который был напечатан ранее.Так что это просто печать того, что было напечатано в обычной функции печати, но в обратном направлении.
Вы заметите, что я закомментировал часть первого цикла while в функции printList.Когда он помещается обратно в код и последняя строка этого соответствующего цикла while закомментирована, первый набор маршрутов, очевидно, будет выглядеть как «Даллас - Даллас, Хьюстон - Хьюстон и т. Д.».Тем не менее, если бы я мог обновить переменную в той же строке cout, это не было бы проблемой.
Я попытался разделить эту функцию на две (одна для обычной печати и одна для обратной печати), но это тоже не сработало.Это как-то связано с тем, что я обновляю переменную между отпечатками?Или это что-то совсем другое?
Вот ссылка на мой repl.it, если вы хотите более прямо ткнуть в код: Ссылка на остальную часть этого кода ...