Advertisement
elica123

2.zadatak-2014.

Nov 28th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1.  
  2. //A DIO
  3. int IsSorted(BinaryTree T){
  4. if(BiEmpty(T)==1)return 1;
  5. int rje;
  6. node korjen=BiRoot(T);
  7. if(BiLabel(BiLeftChild(korjen, T), T) > BiLabel(korjen, T)
  8. || BiLabel(BiRightChild(korjen, T), T) > BiLabel(korjen, T))
  9. return 0;
  10. BinaryTree A,B;
  11. BiMakeNull(&A);
  12. BiMakeNull(&B);
  13. BiLeftSubtree(T, &A);
  14. BiRightSubtree(T, &B);
  15. if(rje==0)return rje;
  16. else
  17. rje=IsSorted(A);
  18. rje=IsSorted(B);
  19. }
  20.  
  21. //B DIO
  22. void Sort(BinaryTree *T){
  23. if(IsSorted(*T)==1)return;
  24. krecisepostabluimijenjajga(T);
  25. Sort(T);
  26. }
  27.  
  28. void krecisepostabluimijenjajga(BinaryTree *T){
  29. korjen=BiRoot(*T);
  30. if(korjen==LAMBDA)return;
  31. if(BiLabel(BiLeftChild(korjen, (*T)), T) > BiLabel(korjen, (*T))){
  32. L=BiLabel(BiLeftChild(korjen, (*T)), (*T);
  33. BiChangeLabel(BiLabel(korje, (*T)), BiLeftChild(korjen, (*T)), T);
  34. BiChangeLabel(L, korjen (*T)), T);
  35. }
  36. if(BiLabel(BiRightChild(korjen, T), T)>BiLabel(korjen, T)){
  37. L=BiLabel(BiRightChild(korjen, (*T)), (*T);
  38. BiChangeLabel(BiLabel(korjen, (*T)), BiRightChild(korjen, (*T)), T);
  39. BiChangeLabel(L, korjen (*T)), T);
  40. }
  41. BinaryTree* A,B;
  42. BiMakeNull(A);
  43. BiMakeNull(B);
  44. BiLeftSubtree(T, A);
  45. BiRightSubtree(T, B);
  46. krecisepostabluimijenjajga(A);
  47. krecisepostabluimijenjajga(B);
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement