lab7 tree
lab7 tree
Related theory:
Tree terminologies
Binary tree
Tree Traversals
Binary search tree operations
1. Creation and Pre- order, in-order and Post order Traversal of binary trees
#include <iostream>
class Node{
public:
int data;
Node* left;
Node* right;
Node(int val){
data = val;
left = NULL;
right = NULL;
};
in_Order(root->left);
cout<<root->data<<" ";
in_Order(root->right);
cout<<root->data<<" ";
pre_Order(root->left);
pre_Order(root->right);
post_Order(root->left);
post_Order(root->right);
cout<<root->data<<" ";
int main()
in_Order(root);
pre_Order(root);
post_Order(root);
return 0;
2. Program for the following operations on Binary Search Tree (BST) of Integers
i. Creation of a BST
ii. Perform insertion operation in the BST
iii. Traverse the BST in In-order, Preorder and Post Order
iv. Search the BST for a given element
v. Perform deletion of some elements
#include <iostream>
class Node {
public:
int info;
Node* left;
Node* right;
};
class BST {
private:
Node* root;
// Recursive helpers
else
return node;
if (node) {
inorder(node->left);
inorder(node->right);
if (node) {
preorder(node->left);
preorder(node->right);
if (node) {
postorder(node->left);
postorder(node->right);
else
node = node->left;
return node;
if (!node) {
return nullptr};
} else {
if (!node->left) {
delete node;
return temp;
if (!node->right) {
delete node;
return temp;
node->info = successor->info;
return node;
public:
BST() : root(nullptr) {}
void create() {
int n, val;
cin >> n;
cout << val << " deleted from BST (if it existed).\n";
if (result)
else
void traverseAll() {
inorder(root);
preorder(root);
postorder(root);
};
int main() {
BST tree;
tree.create();
tree.traverseAll();
int val;
tree.insertValue(val);
tree.searchValue(val);
tree.deleteValue(val);
tree.traverseAll();
return 0;