其他分享
首页 > 其他分享> > 顺序表中的完全二叉树转存到二叉链表中

顺序表中的完全二叉树转存到二叉链表中

作者:互联网

题目

一棵完全二叉树存储于顺序表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