Вот то, что пока есть в моем классе:
Code:
struct TreeNode //структура узла дерева
{
int value; //значение
TreeNode *leftChild; //указатель на левого наследника
TreeNode *rightChild;//указатель на правого наследника
};
class BinarySerachTree //описание класса дерева
{
public:
BinarySerachTree(); //прототип конструктора
~BinarySerachTree(); //прототип деструктора
bool AddElement(TreeNode *node,int element); //прототип функции добавления элемента
//передаем в функцию указатель на узел,
//в который будем добавлять элемент и
//сам элемент
TreeNode *root; //указатель на корень дерева
};
BinarySerachTree::BinarySerachTree(): //описание конструктора
root(0)
{
}
BinarySerachTree::~BinarySerachTree() //описание деструктора
{
delete root;
}
bool BinarySerachTree::AddElement(TreeNode *node,int element)//добавление элемента
{
if(root)
{
if(element < root->value)
{
return AddElement(root->leftChild,element);
}
else
{
if(element > root->value)
{
return AddElement(root->rightChild,element);
}
else
{
return false;
}
}
}
else
{
TreeNode *toAdd=new TreeNode;
toAdd->value=element;
toAdd->leftChild=0;
toAdd->rightChild=0;
}
return true;
}
Исходник написан на C#.
В частности меня волнует вывод дерева на экран, как в этом исходнике |