试给出二叉树从下至上,从右至左的遍历算法

news/2025/2/14 5:54:29/

算法思想:根据层次遍历的顺序可得到与该问题相反的次序,则可利用栈先进后出的性质,按层次遍历输出各结点并压入栈中,出栈时访问结点即可得到从下至上从右边到左边的遍历算法

代码:

void LeverOrder(BiTree T){

BiTree p;//定义一个指向二叉树的指针

InitQueue(Q);//初始化一个队列

InitStack(S);//初始化一个栈

EnQueue(Q,T);//根结点入队

while(!IsEmpty Q){//如果队列非空

        DeQueue(Q,p);//队头结点出队

        Push(S,p);//出队元素入栈

        if(p->lchild!=NULL)//如果左子树非空

                EnQueue(Q,p->lchild);//左子树根结点入队

        if(p->rchild!=NULL)//如果右子树非空

                EnQueue(Q,p->rchild);//右子树根结点入队

}

if(!IsEmpty S){//如果栈非空

Pop(S,p);//弹出栈顶元素

visit(p);//遍历

}

}


http://www.ppmy.cn/news/2274.html

相关文章

数据比较器,对比数据前后变化细节

前言 在开发的过程中,有时候需要对数据进行比对,来判断是否发生变化。如果一个字段一个字段比较,就太麻烦了。所以通过整合注解与反射的方式,实现一个通用的实体数据比较框架。 设计 使用注解,确定需要比较的属性。…

单片机硬件和软件延时是啥意思?

软件延时和硬件延时是啥意思?做项目时他俩有什么区别? 今天就来讲讲关于硬件延时和软件延时的内容,以及它们的区别。 硬件和软件延时 延时的种类很多,先给大家普及一下延时相关概念和分类。 1.硬件延时 指利用具有计数功能的…

基于jsp+mysql+ssm学生网上请假系统-计算机毕业设计

项目介绍 随着高校招生规模的逐步扩大和教学方式的改革,在校学生人数将不断增加。另一方面,我国高等学校基层学生考核工作的内容杂,管理细,要求高,头绪多,传统的手工档案式管理办法已基本不适应新形势的要…

html实训大作业《基于HTML+CSS+JavaScript红色文化传媒网站(20页)》

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

最优化方法——QR分解

目录 系列文章目录 一、问题 二、实验思路综述 1.实验工具及算法 2.实验数据 3.实验目标 4.实验步骤 三、相关线性代数知识导入 1.线性无关与基 2.标准正交 3.Gram-Schmidt(正交化)算法 四、QR分解 1.Gram-Schmidt QR 1.1 算法原理 1.2 算法流程 1.3 复杂度分析…

Leetcode682:棒球比赛

原文链接:682. 棒球比赛 - 力扣(LeetCode) 题目 你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。 比赛开始时,记录是空白的。你会得到一个记录操作的…

2022最后一个月,我们该如何学Java​?

2022最后一个月,我们该如何学Java? 互联网的快速发展和激烈竞争,在世界编程语言排行榜中,Java位列前三,占全球编程市场份额的12%左右,各大公司对Java工程师的需求量都很大,要求也越来越高,优秀…

《MongoDB》Mongo Shell中的基本操作-删除操作一览

前端博主,热衷各种前端向的骚操作,经常想到哪就写到哪,如果有感兴趣的技术和前端效果可以留言~博主看到后会去代替大家踩坑的~ 主页: oliver尹的主页 格言: 跌倒了爬起来就好~ 来个关注吧,点个赞…