Advertisement
Guest User

main.cpp

a guest
Dec 5th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.75 KB | None | 0 0
  1. #include <iostream>
  2. #include "TreeType.h"
  3. #include <vector>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. char command; //menu command
  9. char item; //user's item
  10. TreeType tree;
  11. string orderItem;
  12. //order,orderItem,PRE_ORDER,IN_ORDER,POST_ORDER;
  13. bool found = false;
  14. bool finished = false;
  15. OrderType order;
  16. ItemType ret;
  17. string words;
  18. int level;
  19. vector<ItemType> itemArray;
  20. char value;
  21.  
  22. do {
  23. cout <<"Choose what to do: \n";
  24. cout <<"-------------------------\n";
  25. cout <<"A: PutItem\n";
  26. cout <<"D: DeleteItem\n";
  27. cout <<"S: GetItem\n";
  28. cout <<"I: info. length, IsEmpty, IsFull\n";
  29. cout <<"P: PrintTree\n";
  30. cout <<"R: (Iterator) ResetTree, GetNextItem\n";
  31. cout <<"C: MakeEmpty\n";
  32. cout <<"O: Build tree using array\n";
  33. cout <<"N: # of Nodes at Level\n";
  34. cout <<"X: PrintAncestors\n";
  35. cout <<"G: Get smallest item\n";
  36. cout <<"F: IsFullTree?\n";
  37. cout <<"B: IsBinarySearchTree?\n";
  38. cout <<"E: Quit\n";
  39. cout <<"-------------------------\n";
  40.  
  41. cin >> command;
  42. switch (command)
  43. {
  44. case 'A':
  45. cout <<"Enter a char to insert:\n";
  46. cin >> item;
  47.  
  48. tree.GetItem(item, found);
  49. if (found)
  50. cout << item << " already in list." << endl;
  51. else
  52. {
  53. tree.PutItem(item);
  54. cout << item;
  55. cout << " is inserted" << endl;
  56. }
  57. break;
  58. case 'D':
  59. cout <<"Enter a char to delete:\n";
  60. cin >> item;
  61. tree.DeleteItem(item);
  62. cout << item;
  63. cout << " is deleted" << endl;
  64. break;
  65. case 'S':
  66. cout <<"Enter a char to search:\n";
  67. cin >> item;
  68.  
  69. tree.GetItem(item, found);
  70. if (found)
  71. cout << item << " found in list." << endl;
  72. else cout << item << " not in list." << endl;
  73. break;
  74. case 'I':
  75. if (tree.IsEmpty())
  76. cout << "Tree is empty." << endl;
  77. else cout << "Tree is not empty." << endl;
  78.  
  79. if (tree.IsFull())
  80. cout << "Tree is full." << endl;
  81. else
  82. cout << "Tree is not full." << endl;
  83.  
  84. //cout<< tree.GetLength();
  85. cout << "Number of nodes is" << tree.GetLength()<<endl;
  86.  
  87.  
  88. break;
  89. case 'P':
  90. //tree.Print(outFile);
  91. break;
  92.  
  93. case 'R':
  94. cout <<"traversal order (preorder, inorder or postorder)";
  95. cin >> orderItem;
  96. if (orderItem == "preorder")
  97. order = PRE_ORDER;
  98. else if (orderItem == "inorder")
  99. order = IN_ORDER;
  100. else order= POST_ORDER;
  101.  
  102. cout <<"traversing nodes in the given order:";
  103. tree.ResetTree(order);
  104. do {
  105. tree.GetNextItem(order,finished);
  106. cout << item;
  107. } while (!finished);
  108. cout << endl;
  109. break;
  110.  
  111. case 'C':
  112. tree.MakeEmpty();
  113. cout << "Tree has been made empty." << endl;
  114. break;
  115.  
  116. case 'O':
  117. cout <<"Enter a string...";
  118. cin >> words;
  119. tree.MakeEmpty();
  120. for (int i=0;i<words.length();i++)
  121. {
  122. ret=tree.GetItem(words[i], found);
  123. if (found)
  124. tree.PutItem (words[i]);
  125. }
  126. break;
  127. case 'N':
  128.  
  129. cin >> level;
  130. tree.GetNodesAtLevel(itemArray,level);
  131. break;
  132. case 'X':
  133. cin >> value;
  134. tree.PrintAncestors(value);
  135. break;
  136. case 'G':
  137. //tree.GetSmallest(tr)
  138. break;
  139. case 'F':
  140. tree.IsFullTree();
  141. break;
  142. case 'B':
  143. tree.IsBST();
  144. break;
  145. case 'E':
  146. cout <<"Ok, Exiting\n";
  147. break;
  148. default:
  149. cout << " Command not recognized." << endl;
  150.  
  151. }
  152. } while (command != 'E');
  153.  
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement