Posted By

dafilipaj on 01/06/11


Tagged

tree binary stablo opcenito ostabloh


Versions (?)

ostablo.h


 / Published in: C++
 

  1. struct Cvor{
  2. int Label;
  3. int PrvoDijete;
  4. int SljedeciBrat;
  5. };
  6. struct tree{
  7. Cvor element[1000];
  8. int first;
  9. };
  10.  
  11. tree *InitT(int x,tree *stablo){
  12. delete [] stablo->element;
  13. stablo=new tree;
  14. stablo->first=0;
  15. stablo->element[x].Label=x;
  16. stablo->first++;
  17. }//InitT
  18.  
  19. int FirstChildT(int x, tree *stablo){
  20. if(x<0) return -1;
  21. else{
  22. if(x>=0 && ((x+1)!=0)) return stablo->element[x].PrvoDijete;
  23. else return -1;
  24. }
  25. }//FirstCildT
  26.  
  27. int NextSiblingT(int x, tree *stablo){
  28. if(x<0) return -1;
  29. else{
  30. if(stablo->element[x].SljedeciBrat!=-1)return stablo->element[x].SljedeciBrat;
  31. else return -1;
  32. }
  33. }//NextSiblingT
  34.  
  35. int ParentT(int x, tree *stablo){
  36. if(x>0) return x-1;
  37. else{
  38. if(x==0) return -1;
  39. else cout<<"Cvor ne postoji"<<endl;
  40. }
  41. }//ParentT
  42.  
  43. int LabelT(int x, tree *stablo){
  44. if(x<0) cout<<"Pogreska"<<endl;
  45. else{
  46. return stablo->element[x].Label;
  47. }
  48. }//LabelT
  49.  
  50. int ChangeLabelT(int x, int y, tree *stablo){
  51. if(x<0) return -1;
  52. else stablo->element[y].Label=x;
  53. }//changeLabel
  54.  
  55. int RootT(tree *stablo){
  56. return stablo->element[0].Label;
  57. }//RootT
  58.  
  59. int CreateT(int x, int y, tree *stablo){
  60. stablo->element[stablo->first].Label=x;
  61. stablo->element[stablo->first].PrvoDijete=y;
  62. stablo->first++;
  63. }//CreateT
  64.  
  65. int DeleteT(int x, tree *stablo){
  66. if(x<0) return -1;
  67. else{
  68. if(stablo->element[x].PrvoDijete>0) DeleteT(stablo->element[x].PrvoDijete,stablo);
  69. else{
  70. stablo->element[x].Label=-1;
  71. stablo->first--;
  72. }
  73. }
  74. }//DeleteT

Report this snippet  

You need to login to post a comment.