Posted By

mateocindric on 01/19/15


Tagged

binarno stablo pretraivanja


Versions (?)

bstablo_pretrazivanja.h


 / Published in: C++
 

bstablo_pretrazivanja.h

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

Report this snippet  

You need to login to post a comment.