Posted By

mvracan on 01/12/14


Tagged

Strukture


Versions (?)

demonstrativni program.cpp


 / Published in: C++
 

demonstracija

  1. #include<iostream>
  2. #include "opcenito stablo.h"
  3. #include "binarno stablo pomocu pokazivaca.h"
  4. #include "ophodenje stabla.h"
  5. #include "binarno stablo pomocu polja.h"
  6. using namespace std;
  7.  
  8. void opcenito(){
  9. int k,r,m,n,l,b,u,izbor,cvor;
  10. char vrijed;
  11.  
  12. cout << "Unesite vrijednost korijena: ";
  13. cin >> k;
  14.  
  15. tree *T = InitT(k,T);
  16.  
  17. cout << "Unesite prvo dijete: ";
  18. cin >> r;
  19. CreateT(r,k,T);
  20. cout << "Unesite brata: ";
  21. cin >> m;
  22. CreateT(m,k,T);
  23. cout << "Unesite unuka (dijete prvog djeteta): ";
  24. cin >> l;
  25. CreateT(l,r,T);
  26. cout << "Unesite drugog unuka (dijete drugog djeteta): ";
  27. cin >> b;
  28. CreateT(b,m,T);
  29.  
  30. do{
  31. system("cls");
  32.  
  33. cout << "Zelite li: " << endl << "1. Vratiti vrijednost" << endl << "2. Promijeniti vrijednost cvora"
  34. << endl << "3. Obrisati cvor" << endl << "4. Ophodenje stabla" << endl << "9. Vratiti se na glavni menu" << endl;
  35. cin >> izbor;
  36. system("cls");
  37. switch(izbor){
  38. case 1:
  39. cout << "Vratiti vrijednost: " << endl << "1. korijena" << endl << "2. oznaku" << endl
  40. << "3. prvo dijete" << endl << "4. brata" << endl << "5. roditelja" << endl;
  41. cin >> n;
  42. if(n!=1){
  43. cout << "Unesite cvor: "; cin >> cvor;
  44. }
  45. switch(n){
  46. case 1: cout << RootT(T) << endl; break;
  47. case 2: cout << LabelT(cvor,T) << endl; break;
  48. case 3: cout << FirstChildT(cvor,T) << endl; break;
  49. case 4: cout << NextSiblingT(cvor,T) << endl; break;
  50. case 5: cout << ParentT(cvor,T) << endl; break;
  51. }
  52. system("pause");
  53. break;
  54. case 2:
  55. cout << "Unesite cvor: "; cin >> cvor;
  56. cout << "Unesite novu vrijednost: "; cin >> vrijed;
  57. ChangeLabelT(vrijed,cvor,T);
  58. system("pause");
  59. break;
  60. case 3:
  61. cout << "Unesite cvor: "; cin >> cvor;
  62. T = DeleteT(cvor,T);
  63. system("pause");
  64. break;
  65. case 4:
  66. cout << "Zelite li: " << endl << "1. PreOrder" << endl << "2. InOrder" << endl << "3. PostOrder" << endl;
  67. cin >> izbor;
  68. switch(izbor){
  69. case 1: PreOrder(T); cout << endl; system("pause"); break;
  70. case 2: InOrder(T); cout << endl; system("pause"); break;
  71. case 3: PostOrder(T); cout << endl; system("pause"); break;
  72. }
  73. T->root=k;
  74. break;
  75. }
  76. }while(izbor!=9);
  77. }
  78.  
  79. void binarno(){
  80. int izbor,k,n,l,cvor,oznaka;
  81.  
  82. cout << "Pomocu: " << endl << "1. Polja" << endl << "2. Pokazivaca" << endl;
  83. cin >> izbor;
  84.  
  85. if(izbor==1){
  86. cout << "Unesite korijen: ";
  87. cin >> k;
  88.  
  89. atree *T = aInitB(k,T);
  90. cout << "Unesite lijevo dijete korijenu: ";
  91. cin >> k;
  92. aCreateLeftB(k,aRootB(T),T);
  93. cout << "Unesite desno dijete korijenu: ";
  94. cin >> k;
  95. aCreateRightB(k,aRootB(T),T);
  96. cout << "Unesite lijevo dijete desnom dijetetu: ";
  97. cin >> n;
  98. aCreateLeftB(l,k,T);
  99. do{
  100. system("cls");
  101. cout << "Zelite li: " << endl << "1. Vratiti poziciju" << endl << "2. Ispisati oznaku" << endl << "3. Promijeniti oznaku"
  102. << endl << "4. Obrisati cvor" << endl << "9. Vratiti se na glavni menu" << endl;
  103. cin >> n;
  104. if(n==4) cout << "Unesite cvor: ";
  105. else if(n==9) break;
  106. else cout << "Unesite poziciju: ";
  107. cin >> cvor;
  108. switch(n){
  109. case 1:
  110. cout << "1. Roditelja cvora" << endl << "2. Lijevog djeteta cvora" << endl << "3. Desno djeteta cvora" << endl;
  111. cin >> n;
  112. switch(n){
  113. case 1: cout << aParentB(cvor,T) << endl; break;
  114. case 2: cout << aLeftChildB(cvor,T)<< endl; break;
  115. case 3: cout << aRightChildB(cvor,T) << endl; break;
  116. }
  117. system("pause");
  118. break;
  119. case 2:
  120. cout << aLabelB(cvor,T) << endl;
  121. system("pause");
  122. break;
  123. case 3:
  124. cout << "Unesite novu oznaku: "; cin >> oznaka;
  125. aChangeLabelB(oznaka,cvor,T);
  126. system("pause");
  127. break;
  128. case 4:
  129. aDeleteB(cvor,T);
  130. system("pause");
  131. break;
  132. }
  133. }while(n!=9);
  134. }
  135. else{
  136. cout << "Unesite korijen: ";
  137. cin >> k;
  138.  
  139. pnode *T = InitB(k,T);
  140.  
  141. cout << "Unesite lijevo dijete korijena: ";
  142. cin >> k;
  143. CreateLeftB(k,RootB(T));
  144.  
  145. cout << "Unesite desno dijete korijena: ";
  146. cin >> k;
  147. CreateRightB(k,RootB(T));
  148.  
  149. cout << "Unesite lijevo dijete desnom dijetetu: ";
  150. cin >> k;
  151. CreateLeftB(k,RightChildB(RootB(T)));
  152.  
  153. do{
  154. system("cls");
  155. cout << "Zelite li" << endl << "1. Vratiti oznaku" << endl << "2. Promijeniti oznaku korijenu"
  156. << endl << "3. Obrisati stablo" << endl << "9. Vratiti se na glavni menu" << endl;
  157. cin >> izbor;
  158. switch(izbor){
  159. case 1:
  160. if(T==NULL){
  161. cout << "Nema stabla vise!" << endl;
  162. system("pause");
  163. break;
  164. }
  165. cout << "Korijen: " << LabelB(RootB(T)) << endl << "Desno dijete korijena: " << LabelB(RightChildB(RootB(T)))
  166. << endl << "Lijevo dijete korijena: " << LabelB(LeftChildB(RootB(T))) << endl
  167. << "Lijevo dijete desnog djeteta: " << LabelB(LeftChildB(RightChildB(RootB(T)))) << endl;
  168. system("pause");
  169. break;
  170. case 2:
  171. cout << "Unesite novu oznaku: "; cin >> oznaka;
  172. ChangeLabelB(oznaka,RootB(T));
  173. system("pause");
  174. break;
  175. case 3:
  176. DeleteB(RootB(T),RootB(T));
  177. T=NULL;
  178. system("pause");
  179. break;
  180. }
  181. }while(izbor!=9);
  182. }
  183. }
  184.  
  185. int main(){
  186. int n;
  187.  
  188. do{
  189. cout << "Zelite li (1) opcenito ili (2) binarno stablo? ";
  190. cin >> n;
  191.  
  192. switch(n){
  193. case 1: opcenito(); break;
  194. case 2: binarno(); break;
  195. }
  196. }while(n!=9);
  197.  
  198. return 0;
  199. }

Report this snippet  

You need to login to post a comment.