Введение в проблему: я делаю программу для отслеживания маршрутов полетов в аэропортах с использованием связанных списков. Например, если набор данных
(Austin - Dallas, Dallas - Houston)
и вы пытаетесь найти рейс
(Austin - Houston)
он рассчитает, что вам нужно выбрать маршрут полета:
(Austin - Dallas - Houston)
То, как работает мое решение (если я смогу понять, как это сделать), заключается в том, что у меня есть внешний связанный список, состоящий из OuterNode
, каждый из которых содержит внутренний связанный список рейсов. Внутренний связанный список состоит из InnerNode
, которые содержат указатели на внешние узлы (также известные как пункт назначения полета). Теоретически это упростило бы итерацию по многим вещам без необходимости копировать данные через строки. В шапке слишком много моих вещей требуют друг друга и не могут иметь реализацию в правильном порядке. (это все в заголовке класса innerlist)
struct OuterNode {
InnerList flights;
int name;
OuterNode* next;
};
struct InnerNode {
OuterNode* dest;
int price;
InnerNode* next;
};
class InnerList
{
public:
InnerList();
~InnerList();
void add(InnerNode*);
private:
InnerNode* innerhead;
};
Итак, в основном:
OuterNode
– требуется InnerList
(пока нет определения)
InnerNode
– нуждается OuterNode
InnerList
– нуждается InnerNode
И в настоящее время ошибка заключается в том, что InnerList
не существует, когда OuterNode
нужно его создать. Как я могу это исправить, чтобы все нашло то, что ему нужно? Есть ли какое-то творческое использование шаблонов или что-то, что я мог бы использовать, чтобы исправить это?