#include<stdio.h>
#include<stdlib.h>
struct node{
int val;
struct node *left;
struct node *right;
};
void killtree(struct node *leaf){
if(leaf->left!=NULL){
killtree(leaf->left);
}
if(leaf->right!=NULL){
killtree(leaf->right);
}
}
void getorder(struct node *leaf, int *f, int *i){
if(leaf->left!=NULL){
getorder(leaf->left, f, i);
}
f[*i]=leaf->val;
*i++;
if(leaf->right!=NULL){
getorder(leaf->right, f, i);
}
}
void create(int co, struct node **leaf){
if(*leaf==NULL){
(*leaf
)=malloc(sizeof(**leaf
)); (*leaf)->val=co;
(*leaf)->left=NULL;
(*leaf)->right=NULL;
}
else if(co<(*leaf)->val){
create(co, &(*leaf)->left);
}
else if(co>=(*leaf)->val){
create(co, &(*leaf)->right);
}
}
void tree(int *f, int c){
int i, *j;
struct node *root;
root=NULL;
for(i=0;i<c;i++){
create(f[i], &root);
}
*j=0;
getorder(root, f, j);
killtree(root);
}
int main(){
int *pole, i, count=3;
pole[0]=25;
pole[1]=12;
pole[2]=16;
tree(pole, count);
printf("Zapis do souboru dokoncen!!"); for(i=1;i<count;i++){
}
return(0);
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CgpzdHJ1Y3Qgbm9kZXsKICAgICAgICAgICAgaW50IHZhbDsKICAgICAgICAgICAgc3RydWN0IG5vZGUgKmxlZnQ7CiAgICAgICAgICAgIHN0cnVjdCBub2RlICpyaWdodDsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgCnZvaWQga2lsbHRyZWUoc3RydWN0IG5vZGUgKmxlYWYpewogICAgIGlmKGxlYWYtPmxlZnQhPU5VTEwpewogICAgICAga2lsbHRyZWUobGVhZi0+bGVmdCk7CiAgICAgICB9CiAgICAgaWYobGVhZi0+cmlnaHQhPU5VTEwpewogICAgICAga2lsbHRyZWUobGVhZi0+cmlnaHQpOwogICAgICAgfQogICAgIGZyZWUobGVhZik7Cn0KICAgICAgICAgICAgCnZvaWQgZ2V0b3JkZXIoc3RydWN0IG5vZGUgKmxlYWYsIGludCAqZiwgaW50ICppKXsKICAgICBpZihsZWFmLT5sZWZ0IT1OVUxMKXsKICAgICAgIGdldG9yZGVyKGxlYWYtPmxlZnQsIGYsIGkpOwogICAgICAgfQogICAgIGZbKmldPWxlYWYtPnZhbDsKICAgICAqaSsrOwogICAgIGlmKGxlYWYtPnJpZ2h0IT1OVUxMKXsKICAgICAgIGdldG9yZGVyKGxlYWYtPnJpZ2h0LCBmLCBpKTsKICAgICAgIH0KfQoKdm9pZCBjcmVhdGUoaW50IGNvLCBzdHJ1Y3Qgbm9kZSAqKmxlYWYpewogICAgIGlmKCpsZWFmPT1OVUxMKXsKICAgICAgICgqbGVhZik9bWFsbG9jKHNpemVvZigqKmxlYWYpKTsKICAgICAgICgqbGVhZiktPnZhbD1jbzsKICAgICAgICgqbGVhZiktPmxlZnQ9TlVMTDsKICAgICAgICgqbGVhZiktPnJpZ2h0PU5VTEw7CiAgICAgICBnZXRjaGFyKCk7CiAgICAgICB9CiAgICAgZWxzZSBpZihjbzwoKmxlYWYpLT52YWwpewogICAgICAgY3JlYXRlKGNvLCAmKCpsZWFmKS0+bGVmdCk7CiAgICAgICB9CiAgICAgZWxzZSBpZihjbz49KCpsZWFmKS0+dmFsKXsKICAgICAgIGNyZWF0ZShjbywgJigqbGVhZiktPnJpZ2h0KTsKICAgICAgIH0KfQoKdm9pZCB0cmVlKGludCAqZiwgaW50IGMpewogICAgIGludCBpLCAqajsKICAgICBzdHJ1Y3Qgbm9kZSAqcm9vdDsKICAgICByb290PU5VTEw7CiAgICAgZm9yKGk9MDtpPGM7aSsrKXsKICAgICAgIGNyZWF0ZShmW2ldLCAmcm9vdCk7CiAgICAgICB9CiAgICAgaj1tYWxsb2Moc2l6ZW9mKCpqKSk7CiAgICAgKmo9MDsKICAgICBnZXRvcmRlcihyb290LCBmLCBqKTsKICAgICBraWxsdHJlZShyb290KTsKfQoKaW50IG1haW4oKXsKICAgIGludCAqcG9sZSwgaSwgY291bnQ9MzsKICAgIHBvbGVbMF09MjU7CiAgICBwb2xlWzFdPTEyOwogICAgcG9sZVsyXT0xNjsKICAgIHRyZWUocG9sZSwgY291bnQpOwogICAgcHJpbnRmKCJEb25lIVxuIik7CiAgICBwcmludGYoIlphcGlzIGRvIHNvdWJvcnUgZG9rb25jZW4hISIpOwogICAgZm9yKGk9MTtpPGNvdW50O2krKyl7CiAgICAgICAgcHJpbnRmKCIlZFx0Iixwb2xlW2ldKTsKICAgIH0KICAgIGZyZWUocG9sZSk7CiAgICByZXR1cm4oMCk7Cn0=