1 / 7
文档名称:

二叉树非递归遍历.doc

格式:doc   页数:7
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

二叉树非递归遍历.doc

上传人:zgs35866 2015/6/4 文件大小:0 KB

下载得到文件列表

二叉树非递归遍历.doc

相关文档

文档介绍

文档介绍:二叉树非递归遍历 收藏
 
从递归说起
void preOrder(TNode* root)
{
    if (root != NULL)
    {
        Visit(root);
        preOrder(root->left);
        preOrder(root->right);
    }
}
递归算法非常的简单。先访问跟节点,然后访问左节点,再访问右节点。如果不用递归,那该怎么做呢?仔细看一下递归程序,就会发现,其实每次都是走树的左分支(left),直到左子树为空,然后开始从递归的最深处返回,然后开始恢复递归现场,访问右子树。
其实过程很简单:一直往左走 root->left->left->left...->null,由于是先序遍历,因此一遇到节点,便需要立即访问;由于一直走到最左边后,需要逐步返回到父节点访问右节点,因此必须有一个措施能够对节点序列回溯。有两个办法:
:在访问途中将依次遇到的节点保存下来。由于节点出现次序与恢复次序是反序的,因此是一个先进后出结构,需要用栈。
使用栈记忆的实现有两个版本。第一个版本是模拟递归的实现效果,跟LX讨论的,第二个版本是直接模拟递归。
:通过指向父节点的指针来回溯(后来发现还要需要增加一个访问标志,来指示节点是否已经被访问,不知道可不可以不用标志直接实现回溯?想了一下,如果不用这个标志位,回溯的过程会繁琐很多。暂时没有更好的办法。)
(还有其他办法可以回溯么?)
这3个算法伪代码如下,没有测试过。
先序遍历伪代码:非递归版本,用栈实现,版本1
// 先序遍历伪代码:非递归版本,用栈实现,版本1 
void preOrder1(TNode* root)
{
    Stack S;
    while ((root != NULL) || !())
    {
        if (root != NULL)
        {
            Visit(root);
            (root);       // 先序就体现在这里了,先访问,再入栈 
            root = root->left; // 依次访问左子树 
        }
        else
        {
            root = ();     // 回溯至父亲节点 
            root = root->right;
        }
    }
}
preOrder1每次都将遇到的节点压入栈,当左子树遍历完毕后才从栈中弹出最后一个访问的节点,访问其右子树。在同一层中,不可能同时有两个节点压入栈,因此栈的大小空间为O(h),h为二叉树高度。时间方面,每个节点都被压入栈一次,弹出栈一次,访问一次,复杂度为O(n)
先序遍历伪代码:非递归版本,用栈实现,版本2
// 先序遍历伪代码:非递归版本,用栈实现,版本2 
void preOrder2(TNode* root)
{
    if ( root != NULL)
    {
        Sta

最近更新

2025年贵州省黔西南布依族苗族自治州单招职业.. 45页

2025年重庆市雅安地区单招职业适应性测试模拟.. 45页

2025年青岛平度市中医医院 (青岛市海慈医疗集.. 46页

2025重庆九龙坡区火炬小学校合同制教师招聘1人.. 49页

2026年c语言基础考试题库(有一套) 13页

胖东来冷冻食品货架手套配置规范 61页

家校社联动共促学生全面发展 6页

2026年c语言文件考试题库(巩固) 13页

2026年c语言竞赛试题有完整答案 13页

2024年十堰市特岗教师招聘真题汇编附答案 33页

2026年义乌市人民政府办公室下属事业单位公开.. 46页

2024年湖北体育职业学院辅导员考试笔试真题汇.. 30页

2024年长春工程学院辅导员招聘备考题库附答案.. 36页

2026年刑事诉讼原理与实务模拟题100道含完整答.. 49页

2026年医院廉政知识测试题完美版 14页

2026年卧底笔试题库100道【历年真题】 40页

2025年伊川县委社会工作部下属事业单位招聘职.. 110页

2026年呼伦贝尔职业技术学院单招职业技能测试.. 42页

2025年户县招教考试备考题库含答案解析(必刷.. 31页

2025年炎陵县招教考试备考题库附答案解析 30页

2025交通运输部所属事业单位第七批统一招聘10.. 18页

2025年新疆考试录用公务员《公安专业科目》真.. 30页

ALC墙板蒸压加气轻质混凝土板材安装施工方案及.. 3页

GBT228-2024金属材料室温拉伸试验方法 39页

单招考试-计算机网络技术期末试卷(带答案) 14页

沪科版八年级-《压强》单元测试题(含答案) 7页

企业承包商准入与退出机制 11页

隐仙派子平命法传人班,老海秘本面授资料 22页

心思的战场-乔依丝迈尔 50页

广州南沙经济技术开发区管理委员会办公室.doc.. 21页