| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1654 人关注过本帖
标题:二叉树前序遍历的递归过程
只看楼主 加入收藏
飘到心海
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:145
注 册:2009-5-3
结帖率:71.43%
收藏
已结贴  问题点数:10 回复次数:12 
二叉树前序遍历的递归过程
void PreOrderTree(BiTNode *bt)
{
    if(bt!=NULL)
    {
        printf("%c ",bt->data);
        PreOrderTree(bt->lchild);
        PreOrderTree(bt->rchild);
    }
   
}
大家可不可以解释下这个函数的递归过程,一直不理解。
如果我把代码最后加上这个语句:
程序代码:
void PreOrderTree(BiTNode *bt)
{
    if(bt!=NULL)
    {
        printf("%c ",bt->data);
        PreOrderTree(bt->lchild);
        PreOrderTree(bt->rchild);
    }
getch();
   
}
那么当运行输出的时候会有问题,归根到底还是对运行过程不了解,希望高手指教。现行谢过。
搜索更多相关主题的帖子: 递归 遍历 二叉树 
2010-05-29 11:57
飘到心海
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:145
注 册:2009-5-3
收藏
得分:0 
没人知道还是我的问题太弱智啊?
2010-05-29 18:39
xichong
Rank: 7Rank: 7Rank: 7
来 自:四川南充
等 级:黑侠
威 望:2
帖 子:146
专家分:582
注 册:2009-6-10
收藏
得分:5 
下面这个是非递归的前序遍历,实际上也是对递归程序执行过程过程的模拟:

void PreOrderTraverse(BiTree T)//先序遍历
{
    SqStack S;
    initialStack(&S);
    Push(&S,T);
    while(!StackEmpty(&S))//出栈顺序:根->左->右
    {
        Pop(&S,&T);
        Visit(T);
        if(T->rchild!=NULL)
            Push(&S,T->rchild);//右子树进栈(后出栈)
        if(T->lchild!=NULL)
            Push(&S,T->lchild);//左子树进栈(先出栈)
    }
}
2010-05-29 21:06
LegendofMine
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-30 10:15
飘到心海
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:145
注 册:2009-5-3
收藏
得分:0 
回复 4楼 LegendofMine
这个递归是回溯法吧?
2010-05-30 14:42
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:5 
对 会返回到根
2010-05-30 16:54
飘到心海
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:145
注 册:2009-5-3
收藏
得分:0 
程序在什么时候会运行到getch()函数?
2010-05-30 17:59
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
分两种情况
一种是为空 则直接就执行getch()
另一种是不为空  则在左右孩子遍历完成回溯到该层  就相当于 程序的顺序执行从上到下
2010-05-30 18:30
飘到心海
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:145
注 册:2009-5-3
收藏
得分:0 
为空的时候直接执行getch()。执行完之后再回溯到上一层对吧?
2010-05-30 20:06
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
2010-05-30 20:56
快速回复:二叉树前序遍历的递归过程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022690 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved