Posted By

cherryfreya on 01/13/14


Tagged

rand bibliotekapoljestablo bibliotekapokazivacstablo


Versions (?)

glavni_program


 / Published in: C++
 

Ovaj program koristi funkcije iz biblioteke bibliotekapokazivacstablo, te demonstrira izvršavanje funkcija prilikom implementacije binarnog stabla.

  1. #include<iostream>
  2. #include<ctime>
  3. //#include "biblioteka_polje_stablo.h"
  4. #include "biblioteka_pokazivac_stablo.h"
  5. using namespace std;
  6.  
  7. void opcija1(){
  8. srand(time(0));
  9. rand();
  10. int korijen, lijevo, desno;
  11. cout << "Pokrece se implementacija" << endl;
  12. korijen = rand()%10;
  13. cout << "Stvaram stablo s korijenom " << korijen << endl;
  14. element *S = InitB(korijen,S);
  15. do{
  16. lijevo = rand()%10;
  17. }while(lijevo == korijen);
  18. cout << "Lijevo dijete cvora " << korijen << " je " << lijevo << endl;
  19. CreateLeftB(lijevo, RootB(S));
  20. do{
  21. desno = rand()%10;
  22. }while(desno == lijevo || desno == korijen);
  23. cout << "Desno dijete cvora " << korijen << " je " << desno << endl;
  24. CreateRightB(desno, RootB(S));
  25. int lijevo2, desno2, lijevo3;
  26. do{
  27. desno2 = rand()%10;
  28. }while(desno2 == desno || desno2 == lijevo || desno2 == korijen);
  29. cout << "Desno dijete cvora " << lijevo << " je " << desno2 << endl;;
  30. CreateRightB(desno2, LeftChildB(RootB(S)));
  31. do{
  32. lijevo2 = rand()%10;
  33. }while(lijevo2 == desno2 || lijevo2 == desno || lijevo2 == lijevo || lijevo2 == korijen);
  34. cout << "Lijevo dijete cvora " << lijevo << " je " << lijevo2 << endl;
  35. CreateLeftB(lijevo2, LeftChildB(RootB(S)));
  36. do{
  37. lijevo3 = rand()%10;
  38. }while(lijevo3 == lijevo2 || lijevo3 == desno2 || lijevo3 == desno || lijevo3 == lijevo || lijevo3 == korijen);
  39. cout << "Lijevo dijete cvora " << desno << " je " << lijevo3 << endl << endl;
  40. CreateLeftB(lijevo3, RightChildB(RootB(S)));
  41.  
  42. cout << " " << korijen << " " << endl;
  43. cout << " / | " << endl;
  44. cout << " " << lijevo << " " << desno << endl;
  45. cout << " /|" << " /" << endl;
  46. cout << " " << lijevo2 << " " << desno2 << " " << lijevo3 << endl << endl;
  47.  
  48.  
  49. cout << "Desno dijete cvora " << lijevo << " je " << LabelB(RightChildB(LeftChildB(RootB(S)))) << endl;
  50. cout << "Lijevo dijete cvora " << desno << " je " << LabelB(LeftChildB(RightChildB(RootB(S)))) << endl;
  51. cout << "Roditelj cvora " << lijevo << " je " << LabelB(ParentB(lijevo,S)) << endl << endl;
  52. cout << "Korijen " << LabelB(RootB(S)) << endl;
  53. do{
  54. korijen = rand()%10;
  55. }while(korijen == lijevo2 || korijen == desno2 || korijen == desno || korijen == lijevo || korijen == lijevo3);
  56. cout << "Promijena korijena u " << korijen << endl;
  57. ChangeLabelB(korijen,RootB(S));
  58.  
  59. cout << "Brisem cvor " << lijevo << endl << endl;
  60. DeleteB(LeftChildB(RootB(S)), S);
  61.  
  62. cout << " " << korijen << " " << endl;
  63. cout << " | " << endl;
  64. cout << " " << desno << endl;
  65. cout << " /" << endl;
  66. cout << " " << lijevo3 << endl << endl;
  67.  
  68. do{
  69. lijevo = rand()%10;
  70. }while(lijevo == korijen || lijevo == desno || lijevo == lijevo3);
  71. cout << "Novo lijevo dijete cvora " << korijen << " je " << lijevo << endl;
  72. CreateLeftB(lijevo,RootB(S));
  73. cout << "Lijevo dijete cvora " << korijen << " je " << LabelB(LeftChildB(RootB(S))) << endl << endl;
  74.  
  75. cout << " " << korijen << " " << endl;
  76. cout << " / | " << endl;
  77. cout << " " << lijevo << " " << desno << endl;
  78. cout << " /" << endl;
  79. cout << " " << lijevo3 << endl << endl;
  80. };
  81.  
  82.  
  83. int main(){
  84. int izbor;
  85. do{
  86. cout << "1. Implementacija binarnog stabla" << endl;
  87. cout << "9. Izlaz" << endl;
  88. cin >> izbor;
  89. switch(izbor){
  90. case 1:
  91. opcija1();
  92. break;
  93. case 9:
  94. break;
  95. default:
  96. cout << "Pogresan izbor" << endl;
  97. }
  98. }while(izbor!=9);
  99. return 0;
  100. system("pause");
  101. }

Report this snippet  

You need to login to post a comment.