Witam.
C++ juz dawno nie ruszalem (nigdy nie umialem go za dobrze). Ale tak dla odswiezenia chcialem sobie napisac BST. Pomoze ktos z kodem ? Nie chce kodu, a raczej moze wskazowki, albo sygnatury funkcji ? Zalezy mi jak najbardziej przejrzystym i wydajnym kodem.
Wiec prosze o uwagi jak powinno wygladac dodawanie elementu (nie wiem czy nie wymylilem sie tu ze wskaznikami) , oraz jak zaprojektowac funkcje drukujaca....
#include "stdafx.h"
#include <iostream>
struct PNode
{
int a;
PNode *Right;
PNode *Left;
};
class BST
{
private:
PNode *T;
public:
BST();
~BST() {};
void Insert(int Item);
void PrintTree();
};
BST::BST()
{
T = NULL;
}
void BST::Insert(int Item)
{
if(T == NULL)
{
PNode *Elem = new(PNode);
Elem->Left = NULL;
Elem->Right = NULL;
Elem->a = Item;
T = Elem;
}
else
{
if(T->a < Item)
T = T->Left;
else
T = T->Right;
Insert(Item);
}
}
void BST::PrintTree()
{
while(T != NULL)
{
std::cout << T->a;
//jak tutaj to rozwiazac ?
}
}
int main()
{
BST *tree = new(BST);
for(int i=0;i<10;++i)
tree->Insert(i);
tree->PrintTree();
tree->~BST();
return 0;
}