donmike25

donmike version lab 2

Dec 17th, 2013
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.78 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct tNode{
  5. int data;
  6. struct tNode *left;
  7. struct tNode *right;
  8. };
  9.  
  10. struct tNode *initNode (int data);
  11. void tGrow ();
  12. void task (struct tNode *total);
  13. void preorder (struct tNode *node);
  14. void postorder (struct tNode *node);
  15. void inorder (struct tNode *node);
  16.  
  17. struct tNode *root;
  18.  
  19. int main()
  20. {
  21.  
  22. tGrow ();
  23. task (root);
  24.  
  25. return 0;
  26. }
  27.  
  28.  
  29. void preorder (struct tNode *node){
  30.  
  31. if(node){
  32.  
  33. if (node->data==2)
  34. printf("hello\t");
  35. else
  36. { printf("%d\t",node-> data);
  37. }
  38. preorder (node->left);
  39. preorder (node->right);
  40. }
  41. }
  42.  
  43. void postorder (struct tNode *node){
  44. if(node){
  45. postorder (node->left);
  46. postorder (node->right);
  47. if (node->data==2)
  48. printf("hello\t");
  49. else
  50. { printf("%d\t",node-> data);
  51. }
  52. }
  53. }
  54.  
  55. void inorder (struct tNode *node){
  56. if(node){
  57. inorder (node->left);
  58. if (node->data==2)
  59. printf("hello\t");
  60. else
  61. { printf("%d\t",node-> data);
  62. }
  63. inorder (node-> right);
  64. }
  65. }
  66.  
  67. void tGrow (void){
  68.  
  69.  
  70.  
  71. root = initNode(0);
  72.     root->left = initNode(1);
  73.     root->right = initNode(2);
  74.     root->left->left = initNode(3);
  75.     root->left->right = initNode(4);
  76.     root->left->left->left = initNode(5);
  77.     root->left->left->right = initNode(6);
  78.     root->left->right->left = initNode(7);
  79.     root->left->right->right = initNode(8);
  80.     root->right->left = initNode(9);
  81.     root->right->right = initNode(10);
  82.     root->right->left->left = initNode(11);
  83.     root->right->left->right = initNode(12);
  84.     root->right->right->left = initNode(13);
  85.     root->right->right->right = initNode(14);
  86. }
  87.  
  88. void task (struct tNode *total){
  89.  
  90. printf(" Inorder traversal:");
  91. inorder(total);
  92.  
  93. }
  94. struct tNode *initNode (int data){
  95. struct tNode *result;
  96. result= (struct tNode*)malloc(sizeof(struct tNode));
  97. result->data=data;
  98. result->left=NULL;
  99. result->right=NULL;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment