开发者社区> 问答> 正文

编写一个复制一棵二叉树的递归算法……

用c语言数据结构解决,追加50分……

展开
收起
知与谁同 2018-07-19 10:19:07 2393 0
2 条回答
写回答
取消 提交回答
  • Status CopyBiTree(BiTree &dest, BiTree &sour)
    {//dest是复制目标,sour是源二叉树
    if (!sour)//如果树为空,则复制空树
    {
    dest = NULL;
    }
    else
    {
    BiTreeNode *root = Buynode(sour->data);
    dest = root;//复制二叉树的根结点
    CopyBiTree(dest->Lchild, sour->Lchild);//复制其左子树
    CopyBiTree(dest->Rchild, sour->Rchild);//复制其右子树
    }
    return OK;
    }

    递归思想如下:

    ①如果树为空,则复制空树

    ②否则,复制二叉树的根结点,递归调用复制其左子树,递归调用复制其右子树

    2019-07-17 22:54:34
    赞同 展开评论 打赏
  • TA有点害羞,没有介绍自己...
    void CopyTree(BiTree S,BiTree &T){
    if (!s) T=NULL;
    else{
    CopyTree(S->lchild,lptr);//复制左子树到lptr
    CopyTree(S->rchild,rptr);//复制右子树到rptr
    T=(BiTree)malloc(sizeof(BiNode));
    T->data=S->data;
    T->lchild=lptr;T->rchild=rptr;
    }//else
    }//CopyTree
    hiahia,同学,拿分来吧~
    2019-07-17 22:54:34
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载