[C++] Добавление элементов в дерево на основе <list>
Добавлено: 17 ноя 2009, 18:09
Попытался реализовать сильноветвящееся дерево с помощью STL. Но в дерево рекурсивной функцией не добавляются никакие элементы, кроме первого(((
Каким образом мне исправить программу, чтобы элементы добавлялись правильно? (в данном примере, допустим, 10 штук потомков друг друга).
Код: Выделить всё
#include <iostream>
#include <list>
#include <string>
using namespace std;
struct Node
{
unsigned char data;
list<Node> List;
};
list<unsigned char> StringList;
void AddToTree (list<unsigned char>::iterator new_data, Node& parent)
{
if (new_data == StringList.end())
return;
Node temp;
temp.data = (*new_data);
parent.List.push_back(temp);
AddToTree(++new_data, temp);
}
static Node root;
int main()
{
for (unsigned char i = 1; i < 11; ++i)
{
StringList.push_back(i);
cout << i << " ";
}
root.data = 0;
AddToTree(StringList.begin(), root);
}