编写一个复制一棵二叉树的递归算法……
答案:2 悬赏:30
解决时间 2021-01-20 02:59
- 提问者网友:棒棒糖
- 2021-01-19 21:36
编写一个复制一棵二叉树的递归算法……
最佳答案
- 二级知识专家网友:渡鹤影
- 2021-01-19 22:46
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,同学,拿分来吧~
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,同学,拿分来吧~
全部回答
- 1楼网友:煞尾
- 2021-01-20 00:07
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;
}
递归思想如下:
①如果树为空,则复制空树
②否则,复制二叉树的根结点,递归调用复制其左子树,递归调用复制其右子树
{//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;
}
递归思想如下:
①如果树为空,则复制空树
②否则,复制二叉树的根结点,递归调用复制其左子树,递归调用复制其右子树
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯