Advertisement
Guest User

Untitled

a guest
Oct 18th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. //in tree.cpp
  2.  
  3. bool tree::read_tree(FILE *fp)
  4. {
  5. char buf[LEN];
  6. int tmp;
  7. if (fscanf(fp,"%s%d",buf,&tmp)!=2)
  8. return false;
  9. root = new tree_node(buf,tmp);
  10. while (fscanf(fp,"%s%d",buf,&tmp)==2)
  11. {
  12. tree_node *add = new tree_node(buf, tmp);
  13. insert(root,add);
  14. }
  15. return true;
  16. }
  17.  
  18.  
  19.  
  20.  
  21. void tree::insert(tree_node *root,tree_node *add)
  22. {
  23. if(*add < *root)
  24. {
  25. if(!root->left)
  26. root->left = add;
  27. else
  28. insert(root->left,add);
  29. }
  30. else
  31. {
  32. if(!root->right)
  33. root->right = add;
  34. else
  35. insert(root->right,add);
  36. }
  37. }
  38.  
  39.  
  40. //tree.h
  41.  
  42. #ifndef TREE_H
  43. #define TREE_H
  44.  
  45. #include "tree_node.h"
  46.  
  47. class tree
  48. {
  49. private:
  50. tree_node *root;
  51. tree_node *curr;
  52. void del(tree_node *root)
  53. {
  54. if(!root)
  55. return;
  56. if(root->left)
  57. del(root->left);
  58. if(root->right)
  59. del(root->right);
  60. delete root;
  61. }
  62.  
  63. public:
  64. tree()
  65. {
  66. root = 0;
  67. curr = 0;
  68. }
  69. ~tree()
  70. {
  71. del(root);
  72. root = 0;
  73. curr = 0;
  74. }
  75. tree_node *get_root() { return root;}
  76. bool read_tree(FILE*);
  77. void print_tree(tree_node *root, int level = 0);
  78. void insert(tree_node *root, tree_node *add);
  79. int countonlevel(tree_node * root, int level);
  80. int diflen(tree_node *root);
  81. //problems
  82. int problem1(tree_node *root);
  83. int problem2(tree_node *root);
  84. int problem3(tree_node *root);
  85. int problem4(tree_node *root);
  86. int problem5(tree_node *root);
  87. };
  88.  
  89. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement