Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Tree Test
- // Date : 25.07.19
- #include<iostream>
- using namespace std;
- struct BST{
- int data;
- BST* left;
- BST* right;
- };
- BST* getnode(int data){
- BST* newnode = new BST();
- newnode->data = data;
- newnode->left = NULL;
- newnode->right = NULL;
- return newnode;
- }
- BST* Insert(BST* node, int data){
- if(node == NULL) {
- node = getnode(data);
- }
- else if(data < node->data){
- node->left = Insert(node->left, data);
- }
- else node->right = Insert(node->right, data);
- return node;
- }
- void inorder(BST* node){
- if(node == NULL) return;
- inorder(node->left);
- cout << node->data << ' ';
- inorder(node->right);
- }
- bool Search(BST* node, int data){
- if(node == NULL) return false;
- else if(node->data == data) return true;
- else if(data < node->data) return Search(node->left, data);
- else return Search(node->right, data);
- }
- BST* findmin(BST* node){
- while(node->left != NULL) node = node->left;
- return node;
- }
- BST* Delete(BST* node,int data){
- if(node == NULL) return node;
- else if(data < node->data) node->left = Delete(node->left, data);
- else if(data > node->data) node->right = Delete(node->right, data);
- else{
- if(node->left == NULL && node->right == NULL){
- delete node;
- node = NULL;
- }
- else if(node->left == NULL){
- BST* temp = node;
- node = node->right;
- delete temp;
- }
- else if(node->right == NULL){
- BST* temp = node;
- node = node->left;
- delete temp;
- }
- else{
- BST* temp = findmin(node->right);
- node->data = temp->data;
- node->right = Delete(node->right, temp->data);
- }
- }
- return node;
- }
- int main(){
- BST* root = NULL;
- root = Insert(root, 67);
- root = Insert(root, 34);
- root = Insert(root, 82);
- root = Insert(root, 12);
- root = Insert(root, 45);
- root = Insert(root, 78);
- inorder(root);
- cout << endl;
- //if(Search(root, 56)) cout << "Yes";
- //else cout << "No";
- Delete(root, 12);
- inorder(root);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement