数组建立二叉搜索树

来源:互联网 发布:淘宝畅易阁抢号 编辑:程序博客网 时间:2024/06/03 17:45

最近学习了一下用数组建立二叉搜索树,感觉自己又提高了一点点,好高兴!

下面写个模板,功能是:
输入 n , 接下来输入 n 个数,建立二叉搜索树。

#include <iostream>#include <algorithm>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;int arr[1000];void set_down(int t,int a[1000]);void print_tree(int t,int a[1000]);//xian xuint main(){    int n,i;    scanf("%d",&n);    memset(arr,-1,sizeof(arr));    int x;    for(i=1; i<=n; i++)    {        scanf("%d",&x);        set_down(x,arr);    }    print_tree(1,arr);}void set_down(int t,int a[1000]){    int n = 1;    while(a[n] != -1)    {        if(t < a[n])            n = n*2;        else            n = n*2+1;    }    a[n] = t;}void print_tree(int t,int a[1000]) // xian xu{    printf("%d  ",a[t]);    if(a[t*2] != -1)        print_tree(t*2,a);    if(a[t*2+1] != -1)        print_tree(t*2+1,a);}
0 0