为什么二叉树基本运算多用递归?

论坛 期权论坛 期权     
mmwwdd   2018-4-26 13:57   2372   2
二叉树的定义就用递归
typedef struct Node
{
     DataType data;
  struct Node *lchild,*rchild;
}*BiTree,BitNode;
这个定义就是自己调用自己,为什么?
还有二叉树的销毁也是用递归的方法
void Destro(BiTree *T)
{
if(*T)]
  { if((*T)->lch...二叉树的定义就用递归
typedef struct Node
{
     DataType data;
  struct Node *lchild,*rchild;
}*BiTree,BitNode;
这个定义就是自己调用自己,为什么?
还有二叉树的销毁也是用递归的方法
void Destro(BiTree *T)
{
if(*T)]
  { if((*T)->lchild)
Destro(&((*T)->lchile));
f((*T)->rchild)
Destro(&((*T)->rchile)
free(*T);
*T=NULL;
}
}
不用递归不是更快更简洁吗/展开
分享到 :
0 人收藏

2 个回复

倒序浏览
2#
cfxld123  1级新秀 | 2018-4-30 01:57:39 发帖IP地址来自
递归实现简单,而且容易理解。你可以试试写写循环的。或者你的意思就是销毁的时候把头结点的左右节点直接设置NULL?这样的话,简单程序还好,要不到后面你就没空间了。
3#
名字短了会重名  3级会员 | 2018-4-30 01:57:40 发帖IP地址来自
因为二叉树这个概念就是用递归定义的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP