Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //A DIO
- int IsSorted(BinaryTree T){
- if(BiEmpty(T)==1)return 1;
- int rje;
- node korjen=BiRoot(T);
- if(BiLabel(BiLeftChild(korjen, T), T) > BiLabel(korjen, T)
- || BiLabel(BiRightChild(korjen, T), T) > BiLabel(korjen, T))
- return 0;
- BinaryTree A,B;
- BiMakeNull(&A);
- BiMakeNull(&B);
- BiLeftSubtree(T, &A);
- BiRightSubtree(T, &B);
- if(rje==0)return rje;
- else
- rje=IsSorted(A);
- rje=IsSorted(B);
- }
- //B DIO
- void Sort(BinaryTree *T){
- if(IsSorted(*T)==1)return;
- krecisepostabluimijenjajga(T);
- Sort(T);
- }
- void krecisepostabluimijenjajga(BinaryTree *T){
- korjen=BiRoot(*T);
- if(korjen==LAMBDA)return;
- if(BiLabel(BiLeftChild(korjen, (*T)), T) > BiLabel(korjen, (*T))){
- L=BiLabel(BiLeftChild(korjen, (*T)), (*T);
- BiChangeLabel(BiLabel(korje, (*T)), BiLeftChild(korjen, (*T)), T);
- BiChangeLabel(L, korjen (*T)), T);
- }
- if(BiLabel(BiRightChild(korjen, T), T)>BiLabel(korjen, T)){
- L=BiLabel(BiRightChild(korjen, (*T)), (*T);
- BiChangeLabel(BiLabel(korjen, (*T)), BiRightChild(korjen, (*T)), T);
- BiChangeLabel(L, korjen (*T)), T);
- }
- BinaryTree* A,B;
- BiMakeNull(A);
- BiMakeNull(B);
- BiLeftSubtree(T, A);
- BiRightSubtree(T, B);
- krecisepostabluimijenjajga(A);
- krecisepostabluimijenjajga(B);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement