Это разбавленная версия программы, над которой я работаю. В этом примере я хотел бы проанализировать текстовый файл и создать дерево структур Branch.
struct Branch {
int value = -1;
Branch *positive;
Branch *negative;
}
Это пример того, как текстовый файл будет выглядеть ...
First Tree>
Value: 5
Positive:
Value: 7
Positive: X
Negative:
Value: 23
Positive: X
Negative: X
Negative: X
Another Tree>
Value: 1
Positive:
Value: 2
Positive: X
Negative: X
Negative:
Value: 3
Positive: X
Negative: X
Third Tree>
Value: 19
Positive: X
Negative: X
Имена, предшествующие >
, следует игнорировать. всегда будут 3 дерева в правильном порядке, и у меня есть указатели на них.
Branch *firsttree;
Branch *anothertree;
Branch *thirdtree;
Я бы вообразил создание массива указателей на 3 указателя ветвей (firsttree, чужое дерево, третье дерево), тогда итерация по ним будет самым простым способом убедиться, что мы можем поместить это в al oop.
Я бы хотел использовать getline()
для этого и не полагаться на какую-то библиотеку синтаксического анализа .
Это некоторый псевдокод того, что, как я ожидаю, будет выглядеть после прочтения данных:
//firsttree
{
value: 5,
positive: {
value: 7,
positive: nullptr,
negative: {
value: 23,
positive: nullptr,
negative: nullptr
}
},
negative: nullptr
}
//anothertree
{
value: 1,
positive: {
value: 2,
positive: nullptr,
negative: nulptr
},
negative: {
value: 3,
positive: nullptr,
negative: nulptr
}
}
//thirdtree
{
value: 19,
positive: nullptr,
negative: nulptr
}
Вот оно в формате изображения:
Есть ли способ легко l oop через входной файл, опираясь на std::getline()
? Если да, не могли бы вы дать мне некоторый psuedocode для его достижения, поскольку я в основном заблудился, отслеживая индекс и переходя на дочерние узлы. Большое вам спасибо!