#include<iostream>
using namespace std;
typedef struct node{
int value;
struct node *lchild;
struct node *rchild;
}bt_Node , * bt_pointer;
void list_to_tree( int list[] , int start , int end , bt_pointer &T ){
if( start <= end ) {
int mid = ( start + end ) / 2;
T = ( bt_Node * ) malloc ( sizeof( bt_Node ) );
T -> value = list[ mid ];
list_to_tree( list , start , mid - 1 , T -> lchild );
list_to_tree( list , mid + 1 , end , T -> rchild );
}
else {
T = NULL;
}
}
void mid_traverse( bt_pointer T ) {
if( T ) {
mid_traverse( T -> lchild );
cout << T -> value;
mid_traverse( T -> rchild );
}
}
int main() {
int list[ 10 ] = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 };
bt_pointer root;
list_to_tree( list , 0 , 9 , root );
mid_traverse( root );
cout << endl;
return 1;
}
把一个有序整数数组放到二叉树中
最新推荐文章于 2020-08-14 11:14:16 发布