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)
还没有任何评论哟~
