Strukture stabla


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

glavni program


Copy this code and paste it in your HTML
  1. #include <iostream>
  2. #include <cstring>
  3. //ovo izmjeniti u ovisnosti koju implementaciju zelimo
  4. /*
  5. 1. Opce stablo
  6. 2. Binarno stablo s pokazivacima
  7. 3. Binarno stablo uz pomoc polja
  8. */
  9. #define vrsta 3
  10.  
  11. #if vrsta==1
  12. #include "tree.h"
  13. #elif vrsta==2
  14. #include "btree.h"
  15. #else
  16. #include "btree_pointers.h"
  17. #endif
  18.  
  19. using namespace std;
  20.  
  21.  
  22. /*void izbornik(){
  23. cout<<"-----Izbornik----\n";
  24. cout<<"1. Koristi opcenito stablo\n";
  25. cout<<"2. Koristi binarno stablo s pokazivacima\n";
  26. cout<<"3. Koristi binarno stablo uz pomoc polja\n";
  27. cout<<"9. Izlaz iz programa\n";
  28. cout<<"Vas izbor: ";
  29. }
  30. */
  31. #if vrsta==1
  32. void opcenitoStablo(){
  33. tree *stablo=new tree;
  34. InitT(1,stablo);
  35. cout<<"Cvor 2:\n";
  36. CreateT(2,1,stablo);
  37. cout<<"Cvor 3: \n";
  38. CreateT(3,2, stablo);
  39. cout<<"Cvor 4: \n";
  40. CreateT(4,2, stablo);
  41. cout<<"Cvor 5: \n";
  42. CreateT(5,2, stablo);
  43. LabelT(2,stablo);
  44. LabelT(3,stablo);
  45. LabelT(4,stablo);
  46. LabelT(5,stablo);
  47. cout<<"Firstchild od 2: "<<FirstChildT(2,stablo)<<endl;
  48. cout<<"Parent od 3: "<<ParentT(3,stablo)<<endl;
  49. cout<<"Brat od 3: "<<NextSiblingT(3,stablo)<<endl;
  50. cout<<"Mijenjam oznaku na cvoru 3 u vrijednost ""test""\n";
  51. ChangeLabelT("test",3,stablo);
  52. LabelT(3,stablo);
  53. DeleteT(2,stablo);
  54. delete stablo;
  55. }
  56. #elif vrsta==2
  57. void binarnoPolje(){
  58. btree *stablo =new btree;
  59. InitB("korijen",stablo);
  60. CreateLeftB("lijevo dijete 1",1,stablo);
  61. CreateRightB("desno dijete 1",1,stablo);
  62. CreateLeftB("Lijevo dijete 2",2,stablo);
  63. cout<<"Korijen se nalazi na: "<<RootB(stablo)<<endl;
  64. LabelB(1,stablo);
  65. LabelB(2,stablo);
  66. LabelB(3,stablo);
  67. LabelB(4,stablo);
  68. cout<<"Mijenjam vrijednost cvora 4 u vrijednost ""test""\n";
  69. ChangeLabelB("test",4,stablo);
  70. LabelB(4,stablo);
  71. cout<<"Roditelj od cvora 4 je: "<<Parent(4,stablo)<<endl;
  72. cout<<"Brisanje cvora 2...\n";
  73. DeleteB(2,stablo);
  74. delete stablo;
  75. }
  76. #else
  77. void binarnoPokazivac(){
  78. btree *stablo = new btree;
  79. InitB("Korijen",stablo);
  80. CreateLeftB(stablo,RootB(stablo),"lijevo dijete 1");
  81. CreateRightB(stablo,RootB(stablo),"desno dijete 1");
  82. CreateLeftB(stablo,LeftChildB(stablo,RootB(stablo)),"Lijevo dijete 2");
  83. cout<<"Lijevo dijete korijena sadrzi: "<<endl;
  84. LabelB(stablo,LeftChildB(stablo,RootB(stablo)));
  85. cout<<"Desno dijete korijena sadrzi: "<<endl;
  86. LabelB(stablo,RightChildB(stablo,RootB(stablo)));
  87. cout<<"Dijete od lijevog djeteta korijena sadrzi:\n";
  88. LabelB(stablo,LeftChildB(stablo,LeftChildB(stablo,RootB(stablo))));
  89. cout<<"Greska stvaranja vec postojeceg djeteta\n";
  90. CreateLeftB(stablo,RootB(stablo),"lijevo dijete 1");
  91. cout<<"Mijenjanje vrijednosti u lijevog djeteta u ""TEST""\n";
  92. ChangeLabelB("TEST",LeftChildB(stablo,RootB(stablo)),stablo);
  93. cout<<"Brisanje lijevog djeteta i njegovih clanova..\n";
  94. DeleteB(stablo,LeftChildB(stablo,RootB(stablo)));
  95. cout<<"Brisanje desnog djeteta i njegovih clanova..\n";
  96. DeleteB(stablo,RightChildB(stablo,RootB(stablo)));
  97. delete stablo;
  98. }
  99. #endif
  100. int main(){
  101.  
  102. //izbornik();
  103. cout<<"Pocetak programa....\n";
  104. #if vrsta==1
  105. cout<<"Odabrana je implementacija opceg stabla...\n";
  106. system("pause");
  107. opcenitoStablo();
  108. #elif vrsta==2
  109. cout<<"Odabrana je implementacija binarnog stabla i pokazivaca..\n";
  110. system("pause");
  111. binarnoPolje();
  112. #else
  113. cout<<"Odabrana je implementacija binarnog stabla i polja..\n";
  114. system("pause");
  115. binarnoPokazivac();
  116. #endif
  117. cout<<"\n\n---------Kraj programa--------------\n";
  118. system("pause");
  119. return 0;
  120. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.