二叉树,如何设计一个算法,使得交换左右子树。要求非递归算法。 5

 我来答
百度网友28b4182
2012-03-08 · TA获得超过7222个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1809万
展开全部
不是很简单吗?
childtype x=a.lchild;
a.lchild=a.rchild;
a.rchild=x;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蝶舞沧海0204
推荐于2018-05-04
知道答主
回答量:3
采纳率:100%
帮助的人:3535
展开全部
  递归算法:
  void exchange(BitTree T){
   BitNode p;
  if(T->lchild==null && T->rchild==null)
   return;
   else{
   p=T->lchild;
   T->lchild=T->rchild;
   t->rchild=P;
   }
  if(T->lchild){
  exchange(T->lchild);
  }
  if(T->rchild){
  exchange(T->rchild);
  }
  }
  非递归算法
  使用栈作为存储结构
  void exchange(BitTree T){
  定义并初始化栈
  Stack s;
  InitStack(s);
  BitNode p,temp;
  p=T;
  while(p && !EmptyStack(s)){
  if(p){
  push(p);
  p=p->lchild;
  }
  else{
  temp=p->lchild;
  p->lchild=p->rchild;
  p->rchild=temp;
  p=p->lchild;
  }
  }
  }
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式