Posted By

atatlikon on 01/12/14


Tagged

binarno stablo


Versions (?)

bin_stablo_polje


 / Published in: C++
 

URL: bin_stablo_polje

SP 4 ZADATAK

  1. struct elementi {
  2. char oznaka;
  3. bool used;
  4. };
  5. struct bt {
  6. elementi element[1000];
  7.  
  8. };
  9. typedef struct bt btree;
  10. typedef int element;
  11.  
  12. element postoji(char oznaka, btree *B){
  13. for(int i=1;i<1000;i++)
  14. if(B->element[i].oznaka==oznaka) return i;
  15. return 0;
  16.  
  17. }
  18. int ParentB(int n, btree *B){
  19. if(int(n/2)) return n/2;
  20. else return 0;
  21. }
  22. int LeftChildB(int n, btree *B){
  23. if(B->element[n*2].used) return n*2;
  24. else return 0;
  25. }
  26. int RightChildB(int n, btree *B){
  27. if(B->element[n*2+1].used) return n*2+1;
  28. else return 0;
  29. }
  30.  
  31. void CreateLeftB(char x, int n, btree *B){
  32. if (B->element[n*2].used) cout << "Taj cvor vec ima lijevo dijete!" << endl;
  33. else{
  34. B->element[n*2].oznaka=x;
  35. B->element[n*2].used=true;
  36. }
  37. }
  38. void CreateRightB(char x, int n, btree *B){
  39. if (B->element[n*2+1].used) cout << "Taj cvor vec ima desno dijete!" << endl;
  40. else{
  41. B->element[n*2+1].oznaka=x;
  42. B->element[n*2+1].used=true;
  43. }
  44. }
  45. char LabelB(int n, btree *B){
  46. if (B->element[n].used==true) return B->element[n].oznaka;
  47. else cout << "Taj cvor ne postoji!\n";
  48. return ' ';
  49. }
  50. void ChangeLabelB(char x, int n, btree *B){
  51. B->element[n].oznaka=x;
  52. }
  53.  
  54. int RootB(btree *B){
  55. if (B->element[1].used) return 1;
  56. else return 0;
  57. }
  58. void DeleteB(int n, btree *B){
  59. B->element[n].used=false;
  60. n*=2;
  61. while (B->element[n].used || B->element[n+1].used){
  62. B->element[n].used=false;
  63. B->element[n+1].used=false;
  64. n*=2;
  65. }
  66. }
  67. btree *InitB(char x, btree *B){
  68. B=new btree;
  69. B->element[1].oznaka=x;
  70. B->element[1].used=true;
  71. for(int i=2;i<1000;i++)
  72. B->element[i].used=false;
  73. return B;
  74. }

Report this snippet  

You need to login to post a comment.