Posted By

nmajcen on 01/06/14


Tagged

main program 4 Strukture podataka glavni zadatak


Versions (?)

SP Z4 Glavni program


 / Published in: C++
 

Programski kod za glavni program u C++

  1. #include <iostream>
  2. #include "opcenito_stablo.h"
  3. //#include "binarno_stablo_polje.h"
  4. #include "binarno_stablo_pokazivaci.h"
  5. #include "ophodenje_stabla.h"
  6.  
  7. using namespace std;
  8.  
  9. void opcenitoStablo(){
  10. cout << "Opcenito stablo" << endl;
  11. cout << "---------------" << endl;
  12.  
  13. int indeks, indeksCvora;
  14. char labela;
  15.  
  16. cout << "Unesite indeks korijena: ";
  17. cin >> indeks;
  18. int korijenStabla = indeks;
  19. stablo *T = new stablo;
  20. InitT(indeks,T);
  21. cout << "Unesite labelu korijena: ";
  22. cin >> labela;
  23. ChangeLabelT(labela, indeks, T);
  24. cout << endl;
  25.  
  26. cout << "Dodavanje tri nova cvora u cvor '" << LabelT(indeks, T) << "':"<< endl;
  27. for(int i = 0; i < 3; i++){
  28. cout << "Indeks " << i+1 << ". cvora: ";
  29. cin >> indeksCvora;
  30. cout << "Labela " << i+1 << ". cvora: ";
  31. cin >> labela;
  32. CreateT(indeksCvora, indeks, T);
  33. ChangeLabelT(labela, indeksCvora, T);
  34. if (i < 2)
  35. cout << "-------------------" << endl;
  36. } // for
  37. cout << endl;
  38.  
  39. indeks = FirstChildT(indeks, T);
  40. cout << "Dodavanje dva nova cvora u cvor '" << LabelT(indeks, T) << "':"<< endl;
  41. for(int i = 0; i < 3; i++){
  42. cout << "Indeks " << i+1 << ". cvora: ";
  43. cin >> indeksCvora;
  44. cout << "Labela "<< i+1 << ". cvora: ";
  45. cin >> labela;
  46. CreateT(indeksCvora, indeks, T);
  47. ChangeLabelT(labela, indeksCvora, T);
  48. if (i < 2)
  49. cout << "-------------------" << endl;
  50. } // for
  51. cout << endl;
  52.  
  53. cout << "Prikaz rezultata preko ophodenja:";
  54. cout << "\nPreorder: ";
  55. Preorder(T);
  56. cout << "\nInorder: ";
  57. T->glavniKorijen = korijenStabla;
  58. Inorder(T);
  59. cout << "\nPostorder: ";
  60. T->glavniKorijen = korijenStabla;
  61. Postorder(T);
  62.  
  63. cout << "\nBrisanje stabla" << endl;
  64. cout << "- - - - - - - -" << endl;
  65. DeleteT(korijenStabla, T);
  66. cout << endl;
  67. }
  68.  
  69. void binarnoStablo(){
  70. cout << "Binarno stablo" << endl;
  71. cout << "--------------" << endl;
  72.  
  73. int vrijednost;
  74. cout << "Unesite vrijednost: ";
  75. cin >> vrijednost;
  76. stabloB *T = new stabloB;
  77. InitB(vrijednost, T);
  78. cvorB korijen = RootB(T);
  79. cout << "Adresa korijena: " << korijen << endl << endl;
  80. cout << "Vrijednost korijena: " << LabelB(korijen, T) << endl << endl;
  81.  
  82. cout << "Pokazivac na L cvor: " << LeftChildB(korijen, T) << endl;
  83. cout << "Pokazivac na D cvor: " << RightChildB(korijen, T) << endl << endl;
  84.  
  85. cout << "Stvaranje L cvora (1)" << endl;
  86. cout << "- - - - - - - - - - -" << endl;
  87. cout << "Unesite vrijednost: ";
  88. cin >> vrijednost;
  89. CreateLeftB(vrijednost, korijen, T);
  90. cvorB lijevoDijete1 = LeftChildB(korijen, T);
  91. cout << "Vrijednost L cvora: " << LabelB(lijevoDijete1, T) << endl;
  92. cout << "Adresa L cvora: " << lijevoDijete1 << endl;;
  93. cout << "Roditelj L cvora: " << ParentB(lijevoDijete1, T) << endl << endl;
  94.  
  95. cout << "Stvaranje L cvora (2)" << endl;
  96. cout << "- - - - - - - - - - -" << endl;
  97. cout << "Unesite vrijednost: ";
  98. cin >> vrijednost;
  99. CreateLeftB(vrijednost, lijevoDijete1, T);
  100. cvorB lijevoDijete2 = LeftChildB(lijevoDijete1, T);
  101. cout << "Vrijednost L cvora: " << LabelB(lijevoDijete2, T) << endl;
  102. cout << "Adresa L cvora: " << lijevoDijete2 << endl;;
  103. cout << "Roditelj L cvora: " << ParentB(lijevoDijete2, T) << endl << endl;
  104.  
  105. cout << "Stvaranje D cvora (2)" << endl;
  106. cout << "- - - - - - - - - - -" << endl;
  107. cout << "Unesite vrijednost: ";
  108. cin >> vrijednost;
  109. CreateRightB(vrijednost, lijevoDijete1, T);
  110. cvorB desnoDijete2 = RightChildB(lijevoDijete1, T);
  111. cout << "Vrijednost D cvora: " << LabelB(desnoDijete2, T) << endl;
  112. cout << "Adresa D cvora: " << desnoDijete2 << endl;
  113. cout << "Roditelj D cvora: " << ParentB(desnoDijete2, T) << endl << endl;
  114.  
  115. cout << "Promjena labele" << endl;
  116. cout << "- - - - - - - -" << endl;
  117. cout << "1) korijen" << endl;
  118. cout << "2) L cvor (1)" << endl;
  119. cout << "3) L cvor (2)" << endl;
  120. cout << "4) D cvor (2)" << endl << endl;
  121. cout << "Vas odabir: ";
  122. int odabir;
  123. cin >> odabir;
  124. cout << endl;
  125.  
  126. cvorB varijabla;
  127. if(odabir == 1)
  128. varijabla = korijen;
  129. else if(odabir == 2)
  130. varijabla = lijevoDijete1;
  131. else if(odabir == 3)
  132. varijabla = lijevoDijete2;
  133. else if(odabir == 4)
  134. varijabla = desnoDijete2;
  135. else{
  136. cout << "Krivi unos." << endl;
  137. varijabla = 0;
  138. } // else
  139.  
  140. if(varijabla != 0){
  141. cout << "Unesite vrijednost: ";
  142. cin >> vrijednost;
  143. ChangeLabelB(vrijednost, varijabla, T);
  144. cout << "Vrijednost D cvora: " << LabelB(varijabla, T) << endl;
  145. cout << "Adresa D cvora: " << varijabla << endl;
  146. cout << "Roditelj D cvora: " << ParentB(varijabla, T) << endl;
  147. } // if
  148.  
  149. cout << "\nBrisanje stabla" << endl;
  150. cout << "- - - - - - - -" << endl;
  151. DeleteB(korijen, T);
  152. cout << endl;
  153. }
  154.  
  155. int main(){
  156. int izbor;
  157. do{
  158. cout << "Izbornik" << endl;
  159. cout << "--------" << endl;
  160. cout << "1. Opcenito stablo" << endl;
  161. cout << "2. Binarno stablo" << endl;
  162. cout << "9. Izlaz iz programa" << endl << endl;
  163.  
  164. cout << "Izbor opcije: ";
  165. cin >> izbor;
  166. cout << endl;
  167.  
  168. switch(izbor){
  169. case 1:
  170. opcenitoStablo();
  171. break;
  172.  
  173. case 2:
  174. binarnoStablo();
  175. break;
  176.  
  177. case 9:
  178. cout << "Kraj programa." << endl;
  179. break;
  180.  
  181. default:
  182. cout << "Krivi unos." << endl << endl;
  183. }
  184. } while(izbor != 9);
  185. }; // main()

Report this snippet  

You need to login to post a comment.