#include <iostream>
using namespace std;
struct Node
{
int value;
Node* left;
Node* right;
Node(int value)
{
this->right = nullptr;
this->left = nullptr;
this->value = value;
}
};
class Tree
{
private:
Node* root;
void InsertNode(Node* current, Node* newNode)
{
if(current == nullptr)
{
current = newNode;
}
else
{
if(current->value > newNode->value)
{
InsertNode(current->left, newNode);
}
else if(current->value < newNode->value)
{
InsertNode(current->right, newNode);
}
}
cout <<"add node: " <<current->value << endl;
}
void Preoder(Node* current)
{
if(current == nullptr) return;
cout << current->value << endl;
Preoder(current->left);
Preoder(current->right);
}
public:
Tree()
{
this->root = nullptr;
}
void Insert(int value)
{
Node* newNode = new Node(value);
InsertNode(this->root, newNode);
}
void PreoderTraversal()
{
Preoder(this->root);
}
};
int main()
{
Tree tree;
tree.Insert(6);
tree.Insert(4);
tree.Insert(8);
tree.PreoderTraversal();
}
Mình vẫn k hiểu tại sao lỗi nữa nó k in ra cây theo pre oder được.