Posted By

kokotec on 01/04/11


Tagged

pokazivac c++ binarno stablo


Versions (?)

bstablo_pokazivac


 / Published in: C++
 

  1. struct telement{
  2. int oznaka, korijen;
  3. telement *lijevi, *desni;
  4. };
  5.  
  6. typedef struct telement *tcvor;
  7. typedef struct telement *tstablo;
  8.  
  9. tcvor LeftChildB (tcvor cvor, tstablo stablo){
  10. if (cvor->lijevi != NULL)
  11. return cvor->lijevi;
  12. if (cvor->lijevi == NULL)
  13. cout<<"Greška, nema lijevog djeteta"<<endl;
  14. };
  15.  
  16. tcvor RightChildB (tcvor cvor, tstablo stablo){
  17. if (cvor->desni != NULL)
  18. return cvor->desni;
  19. if (cvor->desni == NULL)
  20. cout<<"Greška, nema desnog djeteta"<<endl;
  21. };
  22.  
  23. tcvor ParentB (tcvor cvor, tstablo stablo){
  24. tcvor par;
  25.  
  26. if (LeftChildB(cvor, stablo)){
  27. if (stablo->lijevi == cvor) return stablo->lijevi;
  28. par = ParentB (cvor, stablo->lijevi);
  29. }
  30. if (RightChildB(cvor, stablo)){
  31. if (stablo->desni == cvor) return stablo->desni;
  32. par = ParentB(cvor, stablo->desni);
  33. }
  34. return par;
  35. };
  36.  
  37. tcvor RootB (tstablo stablo){
  38. if (stablo) return stablo;
  39. else
  40. cout<<"Greška"<<endl;
  41. };
  42.  
  43. int LabelB (tcvor cvor, tstablo stablo){
  44. if(RootB (stablo)){
  45. return cvor->oznaka;
  46. }
  47. else
  48. cout<<"Greška..."<<endl;
  49.  
  50. };
  51.  
  52. void ChangeLabelB (int oznaka, tcvor cvor, tstablo stablo){
  53. if (!RootB (stablo))
  54. cout << "Cvor ne postoji, pa mu se ne moze promijeniti oznaka!!!" << endl;
  55. else
  56. stablo->oznaka = oznaka;
  57. };
  58.  
  59. void CreateLeftB (int oznaka, tcvor cvor, tstablo stablo){
  60. tcvor novi = new telement;
  61. if (LeftChildB(cvor, stablo)){
  62. cout<<"Lijevo dijete vec postoji..."<<endl;
  63. return;
  64. }
  65. else{
  66. novi->oznaka = oznaka;
  67. novi->lijevi = NULL;
  68. novi->desni = NULL;
  69. cvor->lijevi = novi;
  70. }
  71. };
  72.  
  73. void CreateRightB (int oznaka, tcvor cvor, tstablo stablo){
  74. tcvor novi = new telement;
  75. if (RightChildB(cvor, stablo)){
  76. cout<<"Desno dijete vec postoji..."<<endl;
  77. return;
  78. }
  79. else{
  80. novi->oznaka = oznaka;
  81. novi->lijevi = NULL;
  82. novi->desni = NULL;
  83. cvor->desni = novi;
  84. }
  85. };
  86.  
  87. void DeleteB (tcvor cvor, tstablo stablo){
  88. if (LeftChildB (cvor, stablo)) DeleteB (cvor->lijevi, stablo);
  89. if (RightChildB (cvor, stablo) ) DeleteB (cvor->desni, stablo);
  90. delete cvor;
  91. };
  92.  
  93. void InitB (int korijen, tstablo stablo){
  94. tcvor novi = new telement;
  95. novi->korijen = korijen;
  96. novi->lijevi = NULL;
  97. novi->desni = NULL;
  98. stablo = novi;
  99. };

Report this snippet  

You need to login to post a comment.