Binarno stablo_pokazivac


/ Published in: C++
Save to your folder(s)



Copy this code and paste it in your HTML
  1. struct telement{
  2. int label, korijen;
  3. telem *lijevo, *desno;
  4. };
  5.  
  6. typedef struct telem *tcvor;
  7. typedef struct telem *tstablo;
  8.  
  9. tcvor LeftChildB (tcvor cvor, tstablo stablo){
  10. if (cvor->lijevo!= NULL)
  11. return cvor->lijevo;
  12. if (cvor->lijevo == NULL)
  13. cout<<"Nema lijevog djeteta."<<endl;
  14. };
  15.  
  16. tcvor RightChildB (tcvor cvor, tstablo stablo){
  17. if (cvor->desno!= NULL)
  18. return cvor->desno;
  19. if (cvor->desno == NULL)
  20. cout<<"Nema desnog djeteta."<<endl;
  21. };
  22.  
  23. tcvor ParentB (tcvor cvor, tstablo stablo){
  24. tcvor rod;
  25.  
  26. if (LeftChildB(cvor, stablo)){
  27. if (stablo->lijevo == cvor) return stablo->lijevo;
  28. rod = ParentB (cvor, stablo->lijevo);
  29. }
  30. if (RightChildB(cvor, stablo)){
  31. if (stablo->desno == cvor) return stablo->desno;
  32. rod = ParentB(cvor, stablo->desno);
  33. }
  34. return rod;
  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->label;
  46. }
  47. else
  48. cout<<"Greška!"<<endl;
  49.  
  50. };
  51.  
  52. void ChangeLabelB (int label, tcvor cvor, tstablo stablo){
  53. if (!RootB (stablo))
  54. cout << "Taj cvor ne postoji." << endl;
  55. else
  56. stablo->label = label;
  57. };
  58.  
  59. void CreateLeftB (int label, tcvor cvor, tstablo stablo){
  60. tcvor novi = new telement;
  61. if (LeftChildB(cvor, stablo)){
  62. cout<<"Vec postoji."<<endl;
  63. return;
  64. }
  65. else{
  66. novi->label = label;
  67. novi->lijevi = NULL;
  68. novi->desni = NULL;
  69. cvor->lijevi = novi;
  70. }
  71. };
  72.  
  73. void CreateRightB (int label, tcvor cvor, tstablo stablo){
  74. tcvor novi = new telement;
  75. if (RightChildB(cvor, stablo)){
  76. cout<<"Vec postoji."<<endl;
  77. return;
  78. }
  79. else{
  80. novi->label = label;
  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 telem;
  95. novi->korijen = korijen;
  96. novi->lijevi = NULL;
  97. novi->desni = NULL;
  98. stablo = novi;
  99. };

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.