Posted By

nmajcen on 01/06/14


Tagged

4 Strukture podataka polje zadatak binarno stablo


Versions (?)

SP Z4 Binarno stablo (polje)


 / Published in: C++
 

Programski kod za binarno stablo u C++

  1. using namespace std;
  2.  
  3. struct elementB{
  4. int vrijednost;
  5. int zauzeto;
  6. };
  7.  
  8. struct stabloB{
  9. elementB element[1000];
  10. };
  11.  
  12. typedef int cvorB;
  13.  
  14. cvorB ParentB(cvorB n, stabloB *T){
  15. if(n / 2 == 0)
  16. return -1;
  17. else
  18. return n / 2;
  19. } // ParentB(n,T)
  20.  
  21. cvorB LeftChildB(cvorB n, stabloB *T){
  22. if(T->element[n*2].zauzeto == 0)
  23. return -1;
  24. else
  25. return n*2;
  26. } // LeftChildB(n,T)
  27.  
  28. cvorB RightChildB(cvorB n, stabloB *T){
  29. if(T->element[(n*2)+1].zauzeto == 0)
  30. return -1;
  31. else
  32. return (n*2)+1;
  33. } // RightChildB(n,T)
  34.  
  35. int LabelB(cvorB n, stabloB *T){
  36. if(T->element[n].zauzeto == 0)
  37. return -1;
  38. else
  39. return T->element[n].vrijednost;
  40. } // LabelB(n,T)
  41.  
  42. void ChangeLabelB(int x, cvorB n, stabloB *T){
  43. if(T->element[n].zauzeto == 0)
  44. cout << "Element ne postoji." << endl;
  45. else
  46. T->element[n].vrijednost = x;
  47. } // ChangeLabelB(x,n,T)
  48.  
  49. cvorB RootB(stabloB *T){
  50. return 1;
  51. } // RootB(T)
  52.  
  53. void CreateLeftB(int x, cvorB n, stabloB *T){
  54. if(T->element[n*2].zauzeto == 0){
  55. T->element[n*2].zauzeto = 1;
  56. T->element[n*2].vrijednost = x;
  57. } // if
  58. else
  59. cout << "Lijevi cvor vec postoji." << endl;
  60. } // CreateLeftB(x,n,T)
  61.  
  62. void CreateRightB(int x, cvorB n, stabloB *T){
  63. if(T->element[(n*2)+1].zauzeto == 0){
  64. T->element[(n*2)+1].zauzeto = 1;
  65. T->element[(n*2)+1].vrijednost = x;
  66. } // if
  67. else
  68. cout << "Desni cvor vec postoji." << endl;
  69. } // CreateLeftB(x,n,T)
  70.  
  71. void DeleteB(cvorB n, stabloB *T){
  72. if(T->element[n*2].zauzeto != 0)
  73. DeleteB(n*2, T);
  74. if(T->element[(n*2)+1].zauzeto != 0)
  75. DeleteB((n*2)+1, T);
  76. cout << "Izbrisan cvor " << T->element[n].vrijednost << "." << endl;
  77. T->element[n].vrijednost = 0;
  78. T->element[n].zauzeto = 0;
  79. } // DeleteB(n,T)
  80.  
  81. void InitB(int x, stabloB *T){
  82. T->element[1].vrijednost = x;
  83. T->element[1].zauzeto = 1;
  84. for(int i = 2; i < 1000; i++){
  85. T->element[i].zauzeto = 0;
  86. } // for
  87. } // InitB(x,T)

Report this snippet  

You need to login to post a comment.