AVL Tree - Code.docx
AVL Tree - Code.docx
//Node class
class Node {
public:
int data, height;
Node* left_node;
Node* right_node;
Node(int val) {
data = val;
height = 1; // Initial height for a leaf node
left_node = right_node = nullptr;
}
};
//AVL class
//create AVL Class
class AVLTree {
//or
/*
// Nested Node struct within AVLTree
struct Node {
int data, height;
Node* left_node;
Node* right_node;
Node(int val) : data(val), height(1), left_node(nullptr), right_node(nullptr) {}
};
*/
public:
Node* root;
AVLTree() {
root = nullptr;
}
//get height of a node
return child;
}
return child;
}
return node;
}
//delete a node
delete temp;
} else {
Node* temp = min_value_node(root->right_node);
root->data = temp->data;
root->right_node = delete_node(root->right_node, temp->data);
}
}
if (root == nullptr)
return root;
return root;
}
};
int main() {
AVLTree tree;
cout << "in_order Traversal of the AVL Tree before deletion: ";
tree.in_order(tree.root);
cout << endl;
cout << "in_order Traversal of the AVL Tree after deletion: ";
tree.in_order(tree.root);
cout << endl;
cout << "In-order Traversal of the AVL Tree after deletion: ";
tree.in_order(tree.root);
cout << endl;
return 0;
}