Posted By

ivan_uzarevic on 01/19/15


Tagged

data array functions tree structures binary programming pointers computer Algorithms science c++ informatics


Versions (?)

bstablo_glavni.cpp


 / Published in: C++
 

Glavni program koji služi za izvedbu binarnoga stabla te rad sa funkcijama binarnoga stabla.

  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <conio.h>
  4. #include "bstablo_polje.h"
  5. //#include "bstablo_pokazivaci.h"
  6. using namespace std;
  7.  
  8. void ispis (vrijed i) {
  9. cout << (size_t)i << " ***** " << labelB(i,stablo) << " ***** "
  10. << labelB(parentB(i,stablo),stablo) << "***** " << labelB(leftchildB(i,stablo),stablo)
  11. << " ***** " << labelB(rightchildB(i,stablo),stablo) << endl;
  12. }
  13.  
  14. void tablica2 (vrijed tekuci, bstablo *stablo) {
  15. vrijed lijevi, desni;
  16. ispis(tekuci);
  17. lijevi = leftchildB(tekuci,stablo);
  18. desni = rightchildB(tekuci,stablo);
  19. if (lijevi != 0) {
  20. tekuci = lijevi;
  21. tablica2(tekuci,stablo);
  22. }
  23. if (desni != 0) {
  24. tekuci = desni;
  25. tablica2(tekuci,stablo);
  26. }
  27.  
  28. }
  29.  
  30. int main() {
  31. int unos, izbor;
  32. int poz;
  33. vrijed dijete;
  34. cout << "INICIJALIZIRAM BINARNO STABLO..." << endl;
  35. cout << "Unesite labelu (poz.cijeli broj) korijena: ";
  36. cin >> unos;
  37. initB (unos, stablo);
  38. cout << "Binarno stablo inicijalizirano!!!" << endl;
  39. cout << "ENTER ZA NASTAVAK" << endl;
  40. getch();
  41. system("cls");
  42. cout << "AUTOMATSKI UNOS 4 CVORA BINARNOGA STABLA" << endl;
  43.  
  44. cout << "Unesite pozitivni cijeli broj(labela): ";
  45. cin >> unos;
  46. createleftB (unos, rootB (stablo), stablo);
  47.  
  48. cout << "Unesite pozitivni cijeli broj(labela): ";
  49. cin >> unos;
  50. createrightB (unos, rootB (stablo), stablo);
  51.  
  52. cout << "Unesite pozitivni cijeli broj(labela): ";
  53. cin >> unos;
  54. dijete = leftchildB (rootB(stablo),stablo);
  55. createleftB (unos, dijete, stablo);
  56. cout << "Unesite pozitivni cijeli broj(labela): ";
  57. cin >> unos;
  58. createrightB (unos, dijete, stablo);
  59. cout << endl << endl;
  60. tablica2 (rootB (stablo),stablo);
  61. cout << endl;
  62. cout << "ENTER ZA NASTAVAK" << endl;
  63. getch();
  64. do {
  65. system("cls");
  66. cout << "**********DODATNI IZBORNIK**********" << endl;
  67. cout << "1. Roditelj cvora" << endl;
  68. cout << "2. Lijevo dijete cvora" << endl;
  69. cout << "3. Desno dijete cvora" << endl;
  70. cout << "4. Promjena oznake cvora" << endl;
  71. cout << "5. Korijen binarnoga stabla" << endl;
  72. cout << "6. Kreiranje lijevog djetete cvora" << endl;
  73. cout << "7. Kreiranje desnog dijeteta cvora" << endl;
  74. cout << "8. Brisanje cvora sa svim potomcima" << endl;
  75. cout << "9. Izlaz iz programa" << endl;
  76. cout << "*************************************" << endl;
  77. cout << "Unesite mogucnost: ";
  78. cin >> izbor;
  79. switch (izbor) {
  80. case 1:
  81. tablica2 (rootB (stablo),stablo);
  82. cout << endl;
  83. cout << "Unesite poziciju cvora" << endl;
  84. cin >> poz;
  85. cout << "Roditelj cvora je cvor sa labelom " << labelB (parentB((vrijed)poz,stablo),stablo) << endl;
  86. cout << "ENTER ZA NASTAVAK" << endl;
  87. getch();
  88. break;
  89. case 2:
  90. tablica2 (rootB (stablo),stablo);
  91. cout << endl;
  92. cout << "Unesite poziciju cvora" << endl;
  93. cin >> poz;
  94. cout << "Lijevo dijete cvora je cvor sa labelom " << labelB (leftchildB((vrijed)poz,stablo),stablo) << endl;
  95. cout << "ENTER ZA NASTAVAK" << endl;
  96. getch();
  97. break;
  98. case 3:
  99. tablica2 (rootB (stablo),stablo);
  100. cout << endl;
  101. cout << "Unesite poziciju cvora" << endl;
  102. cin >> poz;
  103. cout << "Desno dijete cvora je cvor sa labelom " << labelB (rightchildB((vrijed)poz,stablo),stablo) << endl;
  104. cout << "ENTER ZA NASTAVAK" << endl;
  105. getch();
  106. break;
  107. case 4:
  108. tablica2 (rootB (stablo),stablo);
  109. cout << endl;
  110. cout << "Unesite poziciju cvora" << endl;
  111. cin >> poz;
  112. cout << "Unesite novu labelu cvora(poz.cijeli broj): " << endl;
  113. cin >> unos;
  114. changelabelB (unos,(vrijed)poz,stablo);
  115. cout << "Novi cvor ima vrijednost " << labelB ((vrijed)poz,stablo) << endl;
  116. cout << "ENTER ZA NASTAVAK" << endl;
  117. getch();
  118. break;
  119. case 5:
  120. tablica2 (rootB (stablo),stablo);
  121. cout << endl;
  122. cout << "Korijen binarnoga stabla je cvor sa labelom " << labelB (rootB(stablo),stablo) << endl;
  123. cout << "ENTER ZA NASTAVAK" << endl;
  124. getch();
  125. break;
  126. case 6:
  127. tablica2 (rootB (stablo),stablo);
  128. cout << endl;
  129. cout << "Unesite poziciju cvora" << endl;
  130. cin >> poz;
  131. cout << "Unesite labelu(vrijednost) cvora: ";
  132. cin >> unos;
  133. createleftB(unos,(vrijed)poz,stablo);
  134. ispis((vrijed)poz);
  135. cout << "ENTER ZA NASTAVAK" << endl;
  136. getch();
  137. break;
  138. case 7:
  139. tablica2 (rootB (stablo),stablo);
  140. cout << endl;
  141. cout << "Unesite poziciju cvora" << endl;
  142. cin >> poz;
  143. cout << "Unesite labelu(vrijednost) cvora: ";
  144. cin >> unos;
  145. createrightB(unos,(vrijed)poz,stablo);
  146. ispis((vrijed)poz);
  147. cout << "ENTER ZA NASTAVAK" << endl;
  148. getch();
  149. break;
  150. case 8:
  151. tablica2 (rootB (stablo),stablo);
  152. cout << endl;
  153. cout << "Unesite poziciju cvora" << endl;
  154. cin >> poz;
  155. deleteB ((vrijed)poz, stablo);
  156. cout << "ENTER ZA NASTAVAK" << endl;
  157. getch();
  158. break;
  159. }
  160. } while (izbor != 9);
  161.  
  162. return 0;
  163. }

Report this snippet  

You need to login to post a comment.