排序二叉树

来源:互联网 发布:ubuntu 打印机 编辑:程序博客网 时间:2024/06/08 15:38
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>using namespace std;int key[10000],flag=0,root=-1;int l[10000],r[10000];void insert(int in,int x){if(x<=key[in]){if(l[in]==-1)l[in]=flag;else insert(l[in],x);}else{if(r[in]==-1)r[in]=flag;else insert(r[in],x);}}void order(int out){if(l[out]!=-1)order(l[out]);printf("the key is:%d ",out);printf("%d\n",key[out]);if(r[out]!=-1)order(r[out]);} int main(){int i,j,k,m,n;scanf("%d",&n);int x;flag=0,root=-1;memset(l,-1,sizeof(l));memset(r,-1,sizeof(r));while(n--){scanf("%d",&x);if(root==-1)key[++root]=x;else{key[++flag]=x;insert(root,x);}}order(root);return 0;}

排序二叉树的原理其实十分简单,就是比根节点小的都放在左边,比根节点大的都放在右边,然后递归实现
0 0
原创粉丝点击