Главная arrow С++ (часть 2) arrow Отображение маршрута

Отображение маршрута

Функция route о, приведенная далее, выводит на экран найденный маршрут и его длину.
// Отображает маршрут и его длину.
void Search::route()
{
stack<FlightInfo> rev; int dist = 0; Flightlnfo f;
// Для отображения маршрута меняет порядок стека на противоположный. while(!btStack.emptyO )  {
f = btStack.top О;
rev.push(f);
btStack.pop О;
}
// Отображает маршрут, while(!rev.empty())  { f = rev.top(); rev.pop() ;
cout « f.from « " to "; dist += f.distance;
}
cout « f.to « endl;
cout « "Distance is " « dist « endl;
}
Обратите внимание на использование второго стека, названного rev. В стеке btstack решение хранится в обратном порядке, вершина стека содержит последний рейс в маршруте, а на дне лежит первый рейс. Следовательно, надо изменить порядок на противоположный для правильного отображения найденного маршрута. Для этого рейсы извлекаются из переменной btstack и помещаются в стек rev.