顺序表中的完全二叉树转存到二叉链表中
作者:互联网
题目
一棵完全二叉树存储于顺序表s中,s.elem[1...s.last],
编写算法建立二叉树的二叉链表
解法
优先考虑使用递归算法建立树
点击查看代码
//主函数中传入的i为1
void CreateTree(slist l, bitree &t, int i) //前序创建
{
t = new binode; //创建新结点
t->data = l.data[i];
if (l.length >= 2 * i) //若长度大于2i,证明此节点有左子树
CreateTree(l, t->lchild, 2 * i);
else
{
t->lchild = NULL;
}
if (l.length >= 2 * i + 1) //若长度大于2i+1,证明此节点有右子树
CreateTree(l, t->rchild, 2 * i + 1);
else
{
t->rchild = NULL;
}
}
标签:lchild,CreateTree,链表,二叉树,表中,rchild,NULL 来源: https://www.cnblogs.com/mengxingadmin/p/15710406.html