Skip to content

Hello everyone ,you can check out some important functions in binary trees like pre-order,In-order,post-order traversals and searching in a binary tree

Notifications You must be signed in to change notification settings

2000090063/Binary-tree-implementation-in-c-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Binary-tree-implementation in c++

Hello everyone ,you can check out some important functions in binary trees like pre-order,In-order,post-order traversals and searching in a binary tree #include

using namespace std;

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

class btree{ public: btree(); ~btree();

void insert(int key);
node *search(int key);
void destroy_tree();
void inorder_print();
void postorder_print();
void preorder_print();

private: void destroy_tree(node *leaf); void insert(int key, node *leaf); node *search(int key, node *leaf); void inorder_print(node *leaf); void postorder_print(node *leaf); void preorder_print(node *leaf);

node *root;

};

btree::btree(){ root = NULL; }

btree::~btree(){ destroy_tree(); }

void btree::destroy_tree(node *leaf){ if(leaf != NULL){ destroy_tree(leaf->left); destroy_tree(leaf->right); delete leaf; } }

void btree::insert(int key, node *leaf){

if(key < leaf->value){
	if(leaf->left != NULL){
		insert(key, leaf->left);
	}else{
		leaf->left = new node;
		leaf->left->value = key;
		leaf->left->left = NULL;
		leaf->left->right = NULL;
	}
}else if(key >= leaf->value){
	if(leaf->right != NULL){
		insert(key, leaf->right);
	}else{
		leaf->right = new node;
		leaf->right->value = key;
		leaf->right->right = NULL;
		leaf->right->left = NULL;
	}
}

}

void btree::insert(int key){ if(root != NULL){ insert(key, root); }else{ root = new node; root->value = key; root->left = NULL; root->right = NULL; } }

node *btree::search(int key, node *leaf){ if(leaf != NULL){ if(key == leaf->value){ return leaf; } if(key < leaf->value){ return search(key, leaf->left); }else{ return search(key, leaf->right); } }else{ return NULL; } }

node *btree::search(int key){ return search(key, root); }

void btree::destroy_tree(){ destroy_tree(root); }

void btree::inorder_print(){ inorder_print(root); cout << "\n"; }

void btree::inorder_print(node *leaf){ if(leaf != NULL){ inorder_print(leaf->left); cout << leaf->value << ","; inorder_print(leaf->right); } }

void btree::postorder_print(){ postorder_print(root); cout << "\n"; }

void btree::postorder_print(node *leaf){ if(leaf != NULL){ inorder_print(leaf->left); inorder_print(leaf->right); cout << leaf->value << ","; } }

void btree::preorder_print(){ preorder_print(root); cout << "\n"; }

void btree::preorder_print(node *leaf){ if(leaf != NULL){ cout << leaf->value << ","; inorder_print(leaf->left); inorder_print(leaf->right); } }

int main(){

//btree tree;
btree *tree = new btree();

tree->insert(10);
tree->insert(6);
tree->insert(14);
tree->insert(5);
tree->insert(8);
tree->insert(11);
tree->insert(18);

tree->preorder_print();
tree->inorder_print();
tree->postorder_print();

delete tree;

}

About

Hello everyone ,you can check out some important functions in binary trees like pre-order,In-order,post-order traversals and searching in a binary tree

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published