您的位置:首页 > 其它

怎样编写一个程序,把一个有序整数数组放到二叉树中?

2011-09-26 13:43 489 查看
 
#include <iostream>

#include "stdlib.h"

#include <string>

using namespace std;

typedef struct node {

        int value;

        struct node *lchild;

        struct node *rchild;

}node,*BITREE;

 

void arraytotree(BITREE &p,int low,int high,int a[])

{

 int mid;

 if(low<=high)

 {

  mid=(low+high)/2;

  p=(BITREE)malloc(sizeof(node));

  p->value=a[mid];

  cout<<p->value<<" ";

  arraytotree(p->lchild,low,mid-1,a);

  arraytotree(p->rchild,mid+1,high,a);

 }else p=NULL;

}

void display_tree(BITREE tree) {

 if(tree){  

    display_tree(tree->lchild);

    cout<<tree->value<<" ";

    display_tree(tree->rchild);

 }

}

int main() {

    int a[] = {1,2,3,4,9,10,33,56,78,90};

    static BITREE tree;

    arraytotree(tree, 0,sizeof(a)/sizeof(*a)-1, a);

    display_tree(tree);

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tree struct include null