Posted By

divukusic on 01/13/14


Tagged

sp zadatak4 Z4


Versions (?)

Main_ZADATAK_4


 / Published in: C++
 

Zadatak 4 Strukutrure podataka

  1. #include <iostream>
  2. #include <windows.h>
  3. #include <string>
  4. #include "polj_binarna.h"
  5. #include "pok_binarna.h"
  6. using namespace std;
  7. string ispis;
  8. bool alocirano3=false;
  9. bool alocirano4=false;
  10. char naziv[50],naziv4[50];
  11. int izbor1=0,izbor2=0,n;
  12.  
  13. sp*polje=new sp;
  14. bool prvi() {
  15. int opcija;
  16. ispis=("=============================================\nPRVI ZADATAK\n=============================================\n\n");
  17. for(int i=0; i<107; i++) {
  18. cout<<ispis[i];
  19. }
  20. if(!alocirano) {
  21. cout<<"Unesite naziv korijena binarnog stabla\n";
  22. cin.ignore();
  23. cin.getline(naziv,50);
  24. InitT(naziv,polje);
  25. alocirano=true;
  26. system("cls");
  27. ispis=("Uspjesno je inicijalizirano novo stablo\n");
  28. for(int i=0; i<40; i++) {
  29. cout<<ispis[i];
  30. }
  31. }
  32. while(izbor2!=11) {
  33. cout<<"\nIzbornik\n";
  34. cout<<"1. Inicijaliziranje novog binarnog stabla i korijena\n";
  35. cout<<"2. Dodavanje lijevog djeteta n-tog cvora binarnog stabla\n";
  36. cout<<"3. Dodavanje desnog djeteta n-tog cvora binarnog stabla\n";
  37. cout<<"4. Pronalazenje roditelja n-tog cvora binarnog stabla\n";
  38. cout<<"5. Pronalazenje lijevog djeteta n-tog cvora binarnog stabla\n";
  39. cout<<"6. Pronalazenje desnog djeteta n-tog cvora binarnog stabla\n";
  40. cout<<"7. Pronalazenje naziva n-tog cvora binarnog stabla\n";
  41. cout<<"8. Brisanje potomaka od n-tog cvora binarnog stabla\n";
  42. cout<<"9. Pronalazenje naziva korijena binarnog stabla\n";
  43. cout<<"10. Mijenjanje naziva n-tog cvora binarnog stabla\n";
  44. cout<<"11. Izlaz\n";
  45. cout<<"Odaberite jednu od opcija: ";
  46. cin>>izbor2;
  47. system("cls");
  48. if(izbor2==1) {
  49. cout<<"Unesite naziv korijena binarnog stabla\n";
  50. cin.ignore();
  51. cin.getline(naziv,50);
  52. InitT(naziv,polje);
  53. alocirano=true;
  54. ispis=("Uspjesno je inicijalizirano novo stablo\n");
  55. for(int i=0; i<40; i++) {
  56. cout<<ispis[i];
  57. }
  58. }
  59. else if(izbor2==2) {
  60. cout<<"Na koji cvor zelite dodati lijevo dijete?\n";
  61. cin>>opcija;
  62. cout<<"Unesite naziv lijevog djeteta: ";
  63. cin.ignore();
  64. cin.getline(naziv,50);
  65. createleft(naziv,opcija,polje);
  66. }
  67. else if(izbor2==3) {
  68. cout<<"Na koji cvor zelite dodati desno dijete?\n";
  69. cin>>opcija;
  70. cout<<"Unesite naziv desnog djeteta: ";
  71. cin.ignore();
  72. cin.getline(naziv,50);
  73. createright(naziv,opcija,polje);
  74. }
  75. else if(izbor2==4) {
  76. cout<<"Kojeg cvora zelite pronaci roditelja? \n";
  77. cin>>opcija;
  78. parent(opcija,polje);
  79. cout<<"Roditelj cvora "<<opcija<<" je : "<<oznaka<<endl;
  80. }
  81. else if(izbor2==5) {
  82. cout<<"Unesite cvor od kojega zelite pronaci lijevo dijete: ";
  83. cin>>opcija;
  84. if(!leftchild(opcija,polje)) {}
  85. else {
  86. cout<<"Lijevo dijete cvora "<<opcija<<" je : "<<oznaka<<endl;
  87. }
  88. }
  89. else if(izbor2==6) {
  90. cout<<"Unesite cvor od kojega zelite pronaci desno dijete: ";
  91. cin>>opcija;
  92. if(!rightchild(opcija,polje)) {}
  93. else {
  94. cout<<"Desno dijete cvora "<<opcija<<" je: "<<oznaka<<endl;
  95. }
  96.  
  97. }
  98. else if(izbor2==7) {
  99. cout<<"Unesite naziv cvora kojeg zelite da nadjete naziv: ";
  100. cin>>opcija;
  101. labelT(opcija,polje);
  102. cout<<"Naziv "<<opcija<<"-tog cvora je: "<<oznaka<<endl;
  103.  
  104. }
  105. else if(izbor2==8) {
  106. cout<<"Unesite od kojeg cvora zelite obrisati potomke: ";
  107. cin>>opcija;
  108. deleteT(opcija,polje);
  109. if(opcija==1) {
  110. alocirano=false;
  111. cout<<"Unesite naziv korijena binarnog stabla\n";
  112. cin.ignore();
  113. cin.getline(naziv,50);
  114. InitT(naziv,polje);
  115. alocirano=true;
  116. }
  117. }
  118. else if(izbor2==9) {
  119. RootT(polje);
  120. cout<<"Naziv korijena binarnog stabla je: "<<oznaka<<endl;
  121. }
  122. else if(izbor2==10) {
  123. cout<<"Unesite redni broj cvora od kojeg zelite promijeniti naziv: ";
  124. cin>>opcija;
  125. cout<<"Unesite naziv kojim zelite zamijeniti postojeci: ";
  126. cin.ignore();
  127. cin.getline(naziv,50);
  128. ChangeLabelT(naziv,opcija,polje);
  129. }
  130. }
  131. izbor2=0,izbor1=0;
  132. return 1;
  133. }
  134. ele*polje2=new ele;
  135. bool drugi() {
  136. ispis=("=============================================\nDRUGI ZADATAK\n=============================================\n\n");
  137. for(int i=0; i<110; i++) {
  138. cout<<ispis[i];
  139. }
  140. if(!alocirano2) {
  141. alocirano2=true;
  142. cout<<"Unesite naziv korijena stabla: ";
  143. cin.ignore();
  144. cin.getline(naziv,50);
  145. init(naziv,polje2);
  146. system("cls");
  147. ispis=("Uspjesno je inicijalizirano novo stablo\n");
  148. for(int i=0; i<40; i++) {
  149. cout<<ispis[i];
  150. }
  151. }
  152. while(izbor2!=10) {
  153. cout<<"\nIzbornik\n";
  154. cout<<"1. Inicijalizacija novog binarnog stabla\n";
  155. cout<<"2. Dodavanje lijevog djeteta n-tog cvora binarnog stabla\n";
  156. cout<<"3. Dodavanje desnog djeteta n-tog cvora binarnog stabla\n";
  157. cout<<"4. Pronalazenje roditelja n-tog cvora binarnog stabla\n";
  158. cout<<"5. Pronalazenje lijevog djeteta n-tog cvora binarnog stabla\n";
  159. cout<<"6. Pronalazenje desnog djeteta n-tog cvora binarnog stabla\n";
  160. cout<<"7. Brisanje potomaka od n-tog cvora binarnog stabla\n";
  161. cout<<"8. Pronalazenje naziva korijena binarnog stabla\n";
  162. cout<<"9. Mijenjanje naziva n-tog cvora binarnog stabla\n";
  163. cout<<"10. Izlaz\n";
  164. cout<<"Odaberite jednu od opcija: ";
  165. cin>>izbor2;
  166. system("cls");
  167. if(izbor2==1) {
  168. alocirano2=true;
  169. cout<<"Unesite naziv korijena stabla: ";
  170. cin.ignore();
  171. cin.getline(naziv,50);
  172. init(naziv,polje2);
  173. system("cls");
  174. ispis=("Uspjesno je inicijalizirano novo stablo\n");
  175. for(int i=0; i<40; i++) {
  176. cout<<ispis[i];
  177. }
  178. }
  179. else if(izbor2==2) {
  180. pronadjen=false;
  181. cout<<"Unesite naziv cvora kojem zelite dodati lijevo dijete: ";
  182. cin.ignore();
  183. cin.getline(naziv,50);
  184. cout<<"Unesite naziv novog lijevog djeteta: ";
  185. cin.getline(naziv4,50);
  186. novolijevo(naziv,naziv4,polje2);
  187. if(!pronadjen)cout<<"NE POSTOJI TAJ CVOR\n";
  188. }
  189. else if(izbor2==3) {
  190. pronadjen=false;
  191. cout<<"Unesite naziv cvora kojem zelite dodati desno dijete: ";
  192. cin.ignore();
  193. cin.getline(naziv,50);
  194. cout<<"Unesite naziv desnog djeteta: ";
  195. cin.getline(naziv4,50);
  196. novodesno(naziv,naziv4,polje2);
  197. if(!pronadjen)cout<<"NE POSTOJI TAJ CVOR\n";
  198. }
  199. else if(izbor2==4) {
  200. cout<<"Unesite naziv cvora kojem zelite pronaci roditelja: ";
  201. cin.ignore();
  202. cin.getline(naziv,50);
  203. pronadjen=false;
  204. roditelj(naziv,polje2);
  205. if(!pronadjen)cout<<"NE POSTOJI RODITELJ TOG CVORA!\n";
  206. }
  207. else if(izbor2==5) {
  208. cout<<"Unesite naziv cvora kojem zelite pronaci lijevo dijete: ";
  209. cin.ignore();
  210. cin.getline(naziv,50);
  211. lijevodijete(naziv,polje2);
  212. if(!pronadjen)cout<<"NIJE PRONADJEN TAJ CVOR\n";
  213. else cout<<"Naziv lijevog djeteta je: "<<oznaka2<<endl;
  214. }
  215. else if(izbor2==6) {
  216. cout<<"Unesite naziv cvora kojem zelite pronaci desno dijete: ";
  217. cin.ignore();
  218. cin.getline(naziv,50);
  219. desnodijete(naziv,polje2);
  220. if(!pronadjen)cout<<"NIJE PRONADJEN TAJ CVOR\n";
  221. else cout<<"Naziv desnog djeteta je: "<<oznaka2<<endl;
  222. }
  223. else if(izbor2==7) {
  224. cout<<"Unesite naziv cvora kojem zelite obrisati potomke: ";
  225. cin.ignore();
  226. cin.getline(naziv,50);
  227. pronadjen=false;
  228. brisanje(naziv,polje2);
  229. if(!pronadjen)cout<<"NIJE PRONADJEN TAJ CVOR\n";
  230. }
  231. else if(izbor2==8) {
  232. root(polje2);
  233. cout<<"Naziv korijena binarnog stabla je: "<<oznaka2<<endl;
  234. }
  235. else if(izbor2==9) {
  236. cout<<"Unesite naziv cvora kojem zelite promijeniti naziv: ";
  237. cin.ignore();
  238. cin.getline(naziv,50);
  239. pronadjen=false;
  240. cout<<"Unesite novi naziv tog cvora: ";
  241. cin.getline(naziv4,50);
  242. mijenjanje(naziv,naziv4,polje2);
  243. if(!pronadjen)cout<<"NIJE PRONADJEN TAJ CVOR\n";
  244. }
  245. }
  246. izbor2=0,izbor1=0;
  247. return 1;
  248. }
  249. int main()
  250. {
  251. while(izbor1!=9) {
  252. cout<<"\nIzbornik\n";
  253. cout<<"1. Implementacija binarnog stabla pomocu polja.\n";
  254. cout<<"2. Implementacija binarnog stabla pomocu pokazivaca.\n";
  255. cout<<"9. Izlaz\n";
  256. cin>>izbor1;
  257. system("cls");
  258. if(izbor1==1)prvi();
  259. else if(izbor1==2)drugi();
  260. }
  261. cout<<"Kraj programa\n";
  262. cin>>izbor2;
  263. return 0;
  264. }

Report this snippet  

You need to login to post a comment.