Thêm giá trị vào cây nhị phân tìm kiếm

em thêm vào các giá trị mà sau khi chạy mã code chỉ hiển thị ra giá trị đầu tiên

#include<iostream>

using namespace std;

struct node{
	int data;
	node* left;
	node* right;
};

class BST{
	
	node* root;
	
	public:
		BST();
		~BST();	
		void insert(int x,node *t);
		void insert(int x);
		void inOrder(node *t);
		void Display();
	
};

int main(){
	
	BST tree;
	tree.insert(2);
	tree.insert(5);
	tree.insert(3);

	tree.Display();
	return 0;
}
BST::BST(){
	root = NULL;
}
BST::~BST(){
	
}
void BST::insert(int x,node *t){
	if(x>t->data)
		if(t->right!=NULL){
			insert(x,t->right);
		}
		else{
			t->right=new node;
			t->right->data=x;
			t->right->left=NULL;
			t->right->right=NULL;
		}
	else if(x<t->data)
		if(t->left!=NULL) 
			insert(x,t->left);
		else{
			t->left=new node;
			t->left->data=x;
			t->left->left=NULL;
			t->left->right=NULL;
		}
}
void BST::insert(int x){
	if(root!=NULL){
		return insert(x,root);
	}
	else{
		root=new node;
		root->data=x;
		root->left=NULL;
		root->right=NULL;
	}
}
void BST::inOrder(node *t){
	if(t==NULL){
		return;
	}
	inOrder(t->left);
	cout<<" "<<root->data;
	inOrder(t->right);
}
void BST::Display(){
	inOrder(root);	
}

sao lại cout root->data mà ko phải là t->data :V :V

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?