fork(2) download
  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;
  4.  
  5. struct tnode
  6. {
  7. int data;
  8. struct tnode *left;
  9. struct tnode *right;
  10. };
  11.  
  12. struct node
  13. {
  14. tnode *treenode:
  15. node *next;
  16. };
  17.  
  18.  
  19. // Inserts node in bst
  20. struct tnode* InsertTnode(struct tnode *root, int value)
  21. {
  22. struct tnode *temp = (struct tnode*)malloc(sizeof(struct tnode));
  23. struct tnode *temproot = root;
  24. temp->data = value;
  25. temp->left = NULL;
  26. temp->right = NULL;
  27.  
  28. if(root == NULL)
  29. root = temp;
  30. else
  31. {
  32. while(temproot != NULL)
  33. {
  34. if(value <= temproot->data)
  35. {
  36. if(temproot->left == NULL)
  37. {
  38. temproot->left = temp;
  39. return root;
  40. }
  41. temproot = temproot->left;
  42. }
  43. else
  44. {
  45. if(temproot->right == NULL)
  46. {
  47. temproot->right = temp;
  48. return root;
  49. }
  50. temproot = temproot->right;
  51. }
  52.  
  53. }
  54. }
  55.  
  56. return root;
  57. }
  58.  
  59. // creates bst
  60. struct tnode* InsertBulk(struct tnode *root, int array[], int size)
  61. {
  62. for(int i=0;i<size; i++)
  63. root = InsertTnode(root, array[i]);
  64. return root;
  65. }
  66.  
  67.  
  68. // Inserts node in the linked list
  69. struct node* InsertNode(struct node *head, struct tnode *_treenode)
  70. {
  71. if(_treenode != NULL)
  72. {
  73. struct node *nodex;
  74. struct node *temp=head;
  75. nodex = (struct node*)malloc(sizeof(struct node));
  76. nodex->treenode = _treenode;
  77. nodex->next = NULL;
  78.  
  79. if(head == NULL)
  80. head = nodex;
  81. else
  82. {
  83. while(temp->next != NULL)
  84. temp = temp->next;
  85.  
  86. temp->next = nodex;
  87. }
  88. }
  89. return head;
  90. }
  91.  
  92. void PrintLinList(struct node *head)
  93. {
  94. if(head != NULL)
  95. while(head->next != NULL)
  96. {
  97. cout<<head->treenode->data << " -> ";
  98. head = head->next;
  99. }
  100. cout<<head->treenode->data<<"\n";
  101. }
  102.  
  103.  
  104. // creates creates a linked list of all the nodes at each depth
  105. void ListOfDepth(vector<struct node*> &depth)
  106. {
  107. struct node *head=NULL, *temp;
  108. temp = depth.back();
  109.  
  110. while(temp != NULL)
  111. {
  112. head = InsertNode(head,temp->treenode->left);
  113. head = InsertNode(head,temp->treenode->right);
  114. temp = temp->next;
  115. }
  116.  
  117. if(head != NULL)
  118. {
  119. depth.push_back(head);
  120. ListOfDepth(depth);
  121. }
  122. }
  123.  
  124. int main()
  125. {
  126. struct tnode *root = NULL;
  127. vector<struct node*> depth;
  128. int array[] = {15,10,20,8,12,16};
  129.  
  130. root = InsertBulk(root, array, sizeof(array)/sizeof(array[0])); // tree creation
  131.  
  132. if(root != NULL)
  133. {
  134. struct node *temp = (struct node*)malloc(sizeof(struct node));
  135. temp->treenode = root;
  136. temp->next = NULL;
  137.  
  138. depth.push_back(temp);
  139.  
  140. ListOfDepth(depth);
  141.  
  142. for(auto it = depth.begin(); it<depth.end(); it++)
  143. PrintLinList(*it);
  144. }
  145. return 0;
  146. }
  147.  
  148.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:14:10: error: function definition does not declare parameters
   tnode *treenode:
          ^~~~~~~~
prog.cpp: In function ‘node* InsertNode(node*, tnode*)’:
prog.cpp:76:10: error: ‘struct node’ has no member named ‘treenode’; did you mean ‘node’?
   nodex->treenode = _treenode;
          ^~~~~~~~
          node
prog.cpp:77:10: error: ‘struct node’ has no member named ‘next’
   nodex->next = NULL;
          ^~~~
prog.cpp:83:15: error: ‘struct node’ has no member named ‘next’
   while(temp->next != NULL)
               ^~~~
prog.cpp:84:16: error: ‘struct node’ has no member named ‘next’
   temp = temp->next;
                ^~~~
prog.cpp:86:9: error: ‘struct node’ has no member named ‘next’
   temp->next = nodex;
         ^~~~
prog.cpp: In function ‘void PrintLinList(node*)’:
prog.cpp:95:14: error: ‘struct node’ has no member named ‘next’
  while(head->next != NULL)
              ^~~~
prog.cpp:97:15: error: ‘struct node’ has no member named ‘treenode’; did you mean ‘node’?
   cout<<head->treenode->data << " -> ";
               ^~~~~~~~
               node
prog.cpp:98:16: error: ‘struct node’ has no member named ‘next’
   head = head->next;
                ^~~~
prog.cpp:100:14: error: ‘struct node’ has no member named ‘treenode’; did you mean ‘node’?
  cout<<head->treenode->data<<"\n";
              ^~~~~~~~
              node
prog.cpp: In function ‘void ListOfDepth(std::vector<node*>&)’:
prog.cpp:112:32: error: ‘struct node’ has no member named ‘treenode’; did you mean ‘node’?
   head = InsertNode(head,temp->treenode->left);
                                ^~~~~~~~
                                node
prog.cpp:113:32: error: ‘struct node’ has no member named ‘treenode’; did you mean ‘node’?
   head = InsertNode(head,temp->treenode->right);
                                ^~~~~~~~
                                node
prog.cpp:114:16: error: ‘struct node’ has no member named ‘next’
   temp = temp->next;
                ^~~~
prog.cpp: In function ‘int main()’:
prog.cpp:135:9: error: ‘struct node’ has no member named ‘treenode’; did you mean ‘node’?
   temp->treenode = root;
         ^~~~~~~~
         node
prog.cpp:136:9: error: ‘struct node’ has no member named ‘next’
   temp->next = NULL;
         ^~~~
stdout
Standard output is empty