Opcenito stablo


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

stablo


Copy this code and paste it in your HTML
  1. struct el{
  2. int Label,FirstChild,NextSibling;
  3. };
  4.  
  5. struct tree{
  6. el element[1000];
  7. int First;
  8. };
  9.  
  10. tree *InitT(int X,tree *T){
  11. T = new tree;
  12. for(int i=0;i<1000;i++){
  13. T->element[i].Label = 0;
  14. T->element[i].FirstChild = T->element[i].NextSibling = -1;
  15. }
  16. T->element[X].Label = X;
  17. T->First = X;
  18. return T;
  19. }
  20.  
  21. int FirstChildT(int X, tree *T){
  22. return T->element[X].FirstChild;
  23. }
  24.  
  25. int NextSiblingT(int X, tree *T){
  26. return T->element[X].NextSibling;
  27. }
  28.  
  29. int ParentT(int X, tree *T){
  30. for(int i=0;i<1000;i++){
  31. if(T->element[i].FirstChild==X) return i;
  32. if(T->element[i].NextSibling==X) return ParentT(i,T);
  33. }
  34. }
  35.  
  36. int LabelT(int X, tree *T){
  37. return T->element[X].Label;
  38. }
  39.  
  40. int ChangeLabelT(int X, int n, tree *T){
  41. if(X<0) return -1;
  42. else T->element[n].Label=X;
  43. }
  44.  
  45. int RootT(tree *T){
  46. return 0;
  47. }
  48.  
  49. void CreateT(int x, int n, tree *T){
  50. if(T->element[n].Label==0) cout << "Ne postoji cvor " << n << " !" << endl;
  51. else{
  52. if(T->element[n].FirstChild==-1) T->element[n].FirstChild = x;
  53. else if(T->element[T->element[n].FirstChild].NextSibling==-1) T->element[T->element[n].FirstChild].NextSibling = x;
  54. else{
  55. n = T->element[n].FirstChild;
  56. while(T->element[n].NextSibling!=-1) n = T->element[n].NextSibling;
  57. T->element[n].NextSibling = x;
  58. }
  59. T->element[x].Label = T->element[n].Label+1;
  60. T->element[x].FirstChild = T->element[x].NextSibling = -1;
  61. }
  62. }
  63.  
  64. int DeleteT(int X, tree *T){
  65. if(X<0) return -1;
  66. else{
  67. if(T->element[X].FirstChild>0) DeleteT(T->element[X].FirstChild, T);
  68. else{
  69. T->element[X].Label=-1;
  70. T->First--;
  71. }
  72. }
  73. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.