Binarno stablo pretraživanja


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

Implementacija binarnoga stabla pretraživanja.


Copy this code and paste it in your HTML
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct telement{
  5. int broj;
  6. telement *lijevo,*desno;
  7. };
  8. void alokacija() {
  9. telement *b_stablo = new telement;
  10. b_stablo -> lijevo = NULL;
  11. b_stablo -> desno = NULL;
  12. }
  13. void dodaj_element_u_stablo (int broj){
  14. telement *b_stablo = new telement;
  15. telement *zadnji,*novi;
  16. int dalje = 1;
  17. zadnji = b_stablo;
  18. do{
  19. if(broj > zadnji->broj){
  20. if(zadnji->desno != NULL){
  21. zadnji = zadnji->desno;
  22. }
  23. else{
  24. novi = new telement;
  25. zadnji->desno = novi;
  26. novi->broj = broj;
  27. novi->lijevo = NULL;
  28. novi->desno = NULL;
  29. dalje = 0;
  30. }
  31. }
  32. else{//broj<=zadnji->broj
  33. if(zadnji->lijevo != NULL){
  34. zadnji=zadnji->lijevo;
  35. }
  36. else{
  37. novi = new telement;
  38. zadnji->lijevo=novi;
  39. novi->broj=broj;
  40. novi->lijevo=NULL;
  41. novi->desno=NULL;
  42. dalje=0;
  43. }
  44. }
  45. }while (dalje==1);
  46. }
  47. void sort_uzlazno (){
  48. telement *b_stablo = new telement;
  49. static telement *korijen = b_stablo;
  50. if(b_stablo==NULL) return;
  51. sort_uzlazno();
  52. if(b_stablo != korijen) cout << b_stablo -> broj << ", ";
  53. sort_uzlazno();
  54. }
  55. void sort_silazno(){
  56. telement *b_stablo = new telement;
  57. static telement *korijen = b_stablo;
  58. if(b_stablo==NULL) return;
  59. sort_uzlazno();
  60. if(b_stablo != korijen) cout << b_stablo -> broj << ", ";
  61. sort_uzlazno();
  62. }
  63. telement *trazi(){
  64. int broj;
  65. telement *b_stablo = new telement;
  66. telement *tekuci = b_stablo;
  67. while (tekuci){
  68. if((tekuci->broj==broj)&&(tekuci!=b_stablo)) break;
  69. if(broj>tekuci->broj)
  70. tekuci=tekuci->desno;
  71. else
  72. tekuci=tekuci->lijevo;
  73. }
  74. return tekuci;
  75. }
  76. void dealokacija(){
  77. telement *b_stablo = new telement;
  78. if(b_stablo->lijevo) dealokacija();
  79. if(b_stablo->desno) dealokacija();
  80. delete b_stablo;
  81. return;
  82. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.