Dzień dobry,
Mam problem, ponieważ nie wiem w jaki sposób zmodyfikować poniższy kod, aby program pobierał od użytkownika liczby, które następnie wyświetlałyby się jako
nowe gałęzie drzewa.
Wszystkie kody o drzewach binarnych jakie widziałem opracowują przypadek, w którym definiujemy wartości węzłów wewnątrz programu.
Chciałbym zaimplementować drzewo ( bez użycia bibliotek), do którego użytkownik dodaje gałęzie tak długo, aż nie wpiszę liczby''13''.
Bardzo proszę o pomoc.
#include <iostream>
using namespace std;
class TreeNode
{
public:
int Key;
TreeNode * Left;
TreeNode * Right;
};
TreeNode * NewTreeNode(
int key)
{
TreeNode * node = new TreeNode;
node->Key = key;
node->Left = NULL;
node->Right = NULL;
return node;
}
void PrintTreeInOrder(TreeNode * node)
{
if(node == NULL) return;
PrintTreeInOrder(node->Left);
cout << node->Key << " ";
PrintTreeInOrder(node->Right);
}
void Print (TreeNode * x, int & id)
{
if (!x) return;
Print (x->Left,id);
id++;
cout << id << ' ' << x->Key << endl;
Print (x->Right,id);
}
int main()
{
cout << "Binary Tree" << endl;
TreeNode * root = NewTreeNode(1);
root->Left = NewTreeNode(2);
root->Right = NewTreeNode(3);
root->Left->Left = NewTreeNode(4);
root->Left->Right = NewTreeNode(5);
root->Right->Left = NewTreeNode(6);
root->Right->Right = NewTreeNode(7);
int id = 0;
Print(root, id);
return 0;
}