Advertisement

lesson9-3 给定一个数组 构建二叉树结构

阅读量:

题干:

二叉链表的存储结构定义如下:typedef struct BiNode{
ElemType data;
struct BiNode *lchild,*rchild;
}BiNode,*BiTree;
请根据以下算法声明,运用递归原理完成该算法的实现
BiTree create(ElemType A[],int i){
....
}

思想:

按照常规方式构建即可

函数:

复制代码
 BiTree create(ElemType A[],int i)//i表示当前元素下标

    
 {
    
 	if(i>MAXSIZE)//递归出口,MAXSIZE是数组实际长度
    
 		return NULL;
    
 	BiNode *p=(BiNode *)malloc(sizeof(BiNode));
    
 	p->data=A[i-1];//头结点放进去 
    
                //树是从地址1开始创建的,但实际中要从数组的0地址开始,所以i要减1
    
 	p->lchild=create(A,2*i);//递归创建左子树
    
 	p->rchild=create(A,2*i+1);
    
 	return p;
    
 }
    
    
    

全部评论 (0)

还没有任何评论哟~