Witam mam takie drzewo :
#include <cstdio>
class Node
{
public:
Node *left, *right, *parent;
int key;
Node(int key) : left(NULL), right(NULL), key(key)
{ }
};
void insert(Node *N, int key)
{
if(N->key == key)
return;
if(N->key < key)
if(N->right)
insert(N->right, key);
else
N->right = new Node(key);
else
if(N->left)
insert(N->left, key);
else
N->left = new Node(key);
}
Node* search(Node *N, int key)
{
if(N == NULL)
return NULL;
if(N->key == key)
return N;
if(N->key < key)
return search(N->right, key);
return search(N->left, key);
}
int main()
{
char cmd;
int key;
Node *root = NULL, *out;
while(scanf("%c %d\n", &cmd, &key) > 0)
{
if(cmd == 'I')
if(root)
insert(root, key);
else
root = new Node(key);
else if(cmd == 'S')
out = search(root, key);
// tu należy dopisać pozostałe funkcje
}
return 0;
}
Dalej mam wykonać takie polecenia:
Na wyjściu mają się pojawić rezultaty wczytywanych z wejścia poleceń:
I n - wstaw n do drzewa lub nie rób nic, jeśli ten wyraz już jest w drzewie; nic nie drukuj; (już zrobione)
R n - wypisz rozmiar poddrzewa ukorzenionego w n lub "-" jeśli wierzchołek nie istnieje
Mógłby ktoś pomóc?