m2skills

level node bt cpp

May 16th, 2018
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.05 KB | None | 0 0
  1. // program to find level of a node in a binary tree
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. // node class
  7. class node{
  8. public:
  9.     int data;
  10.     node* left;
  11.     node* right;
  12. };
  13.  
  14. // function that returns a pointer to new node
  15. node* createNode(int element){
  16.     node* temp = (node*) malloc(sizeof(node));
  17.     temp->data = element;
  18.     temp->left = NULL;
  19.     temp->right = NULL;
  20.     return temp;
  21. }
  22.  
  23. // function to find and return the level of a node in binary tree
  24. int level_of_node(node* root, int data, int level = -1){
  25.     // if the tree is empty or if we reach a leaf node then return 0
  26.     if (root == NULL){
  27.         return -1;
  28.     }
  29.     if(root->data == data){
  30.         return level+1;
  31.     }
  32.  
  33.     // check in the left subtree for the element
  34.     // if found then return the level
  35.     int level_node = level_of_node(root->left, data, level + 1);
  36.     if (level_node != -1){
  37.         return level_node;
  38.     }
  39.  
  40.     // searching for the node in right subtree
  41.     level_node = level_of_node(root->right, data, level + 1);
  42.     return level_node;
  43.  
  44. }
  45.  
  46.  
  47. int main() {
  48.     node* head = createNode(1);
  49.     head->left = createNode(2);
  50.     head->right = createNode(3);
  51.     head->left->left = createNode(4);
  52.     head->left->right = createNode(5);
  53.     head->right->right = createNode(6);
  54.     head->left->left->right = createNode(7);
  55.     head->right->right->left = createNode(8);
  56.     head->left->left->right->left = createNode(9);
  57.     head->left->left->right->left->left = createNode(10);
  58.     head->right->right->left->right = createNode(11);
  59.  
  60.     cout<<"Level of node 1 is : "<<level_of_node(head, 1)<<endl;
  61.     cout<<"Level of node 5 is : "<<level_of_node(head, 5)<<endl;
  62.     cout<<"Level of node 10 is : "<<level_of_node(head, 10)<<endl;
  63.     cout<<"Level of node 7 is : "<<level_of_node(head, 7)<<endl;
  64.     cout<<"Level of node 24 is : "<<level_of_node(head, 24)<<endl;
  65.  
  66.  
  67. }
  68.  
  69.  
  70.  
  71. /*
  72.  
  73. Level of node 1 is : 0
  74. Level of node 5 is : 2
  75. Level of node 10 is : 5
  76. Level of node 7 is : 3
  77. Level of node 24 is : -1
  78.  
  79. Process finished with exit code 0
  80.  
  81. */
Add Comment
Please, Sign In to add comment