m2skills

right view cpp

Jun 13th, 2018
817
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. // http://code2begin.blogspot.com
  2. // Program to print the right view of a given binary tree
  3.  
  4. #include <iostream>
  5. #include <queue>
  6. #include <map>
  7. #include <list>
  8.  
  9. using namespace std;
  10.  
  11. // node class
  12. class node{
  13. public:
  14.     int data;
  15.     node* left;
  16.     node* right;
  17. };
  18.  
  19. // function that returns a pointer to new node
  20. node* createNode(int element){
  21.     node* temp = (node*) malloc(sizeof(node));
  22.     temp->data = element;
  23.     temp->left = NULL;
  24.     temp->right = NULL;
  25.     return temp;
  26. }
  27.  
  28. // function to print the right view of the binary tree Recursively
  29. void right_view(node *Node, int level){
  30.     if (Node == NULL)
  31.         return;
  32.     static int max_level = -1;
  33.     list<int> lv;
  34.     if (max_level < level){
  35.         max_level = level;
  36.         cout<<Node->data<<" ";
  37.     }
  38.     right_view(Node->right, level+1);
  39.     right_view(Node->left, level+1);
  40. }
  41.  
  42.  
  43. int main() {
  44.     node* head = createNode(1);
  45.     head->left = createNode(2);
  46.     head->right = createNode(3);
  47.     head->left->left = createNode(4);
  48.     head->left->right = createNode(5);
  49.     head->right->right = createNode(6);
  50.     head->left->left->right = createNode(7);
  51.     head->right->right->left = createNode(8);
  52.     head->left->left->right->left = createNode(9);
  53.     head->left->left->right->left->left = createNode(10);
  54.     head->right->right->left->right = createNode(11);
  55.  
  56.     cout<<"Right view of the binary tree is : "<<endl;
  57.     int level = -1;
  58.     right_view(head, 0);
  59.     return 0;
  60. }
  61.  
  62.  
  63.  
  64. /*
  65.  
  66. Right view of the binary tree is :
  67. 1 3 6 8 11 10
  68. Process finished with exit code 0
  69.  
  70. */
Add Comment
Please, Sign In to add comment