Posted By

nmajcen on 01/06/14


Tagged

4 Strukture podataka pokazivaci zadatak binarno stablo


Versions (?)

SP Z4 Binarno stablo (pokazivaci)


 / Published in: C++
 

Programski kod za binarno stablo u C++

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

Report this snippet  

You need to login to post a comment.