Я не уверен, в чем ваша проблема, но могу проверить это на примере бинарного дерева поиска:
#include <iostream>
using namespace std;
struct Tree{
int Data;
Tree* Left;
Tree* Right;
Tree(int data){
Data = data;
Left = NULL;
Right = NULL;
}
};
Tree* Root;
int Add(Tree* node, Tree* root){ // return int so we can know it successful
if(node == NULL || node->Data == root->Data)
return 0;
if(node->Data <= root->Data) {
if (root->Left)
Add(node, root->Left);
else
root->Left = node;
}
else {
if (root->Right)
Add(node, root->Right);
else
root->Right = node;
}
return 1;
}
int Create(int data){ // return int so we can know it successful
if (Root != NULL)
return 0;
Root = new Tree(data);
return 1;
}
void DisplayInOrder(Tree* node){
if (node == NULL)
return;
DisplayInOrder(node->Left);
cout << node->Data << endl;
DisplayInOrder(node->Right);
}
int main()
{
Create(5);
for (int i = 0; i < 4; i++) {
Tree * t = new Tree(i);
Add(t, Root);
}
DisplayInOrder(Root);
return 0;
}
Я не C++
эксперт, поэтому извините, если у меня были ошибки ...