| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 二叉树的前序,中序,后序遍历(递归和非递归写法) -> 正文阅读 |
|
[数据结构与算法]二叉树的前序,中序,后序遍历(递归和非递归写法) |
一、前序遍历????????前序遍历是二叉树遍历的一种,也叫做先根遍历、先序遍历、前序周游,可记做根左右 ????????前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根节点,然后遍历左子树,最后遍历右子树。 ????????若二叉树为空则结束返回,否则: ????????(1)访问根结点。 ????????(2)前序遍历左子树。 ????????(3)前序遍历右子树 。 ? ? ? ? 如图所示,前序遍历的结果为:ABDECFG ? 递归实现:
测试代码,下同
测试结果: 非递归实现:????????根节点存入栈中打印根节点,然后访问这个根节点的左子树,左子树也是将左子树的根存入栈中打印根节点,依次往下直到左子树为空,再取出栈顶元素,栈顶元素(访问完左子树的根节点)作为新的根节点去访问右子树。 ?
测试结果: 二、中序遍历?? ? ? ? 中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历、中序周游。可记作左跟右 ????????中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。 ????????若二叉树为空则结束返回,否则: ????????(1)中序遍历左子树 ????????(2)访问根结点 ????????(3)中序遍历右子树 如图所示,中序遍历的结果为:DBEAFCG 递归实现:
?测试结果: ?非递归方式? ? ? ? 与前序方式基本相同,不同的是不先打印根节点,而是先访问左子树,在打印根节点,在访问右子树。
测试结果: ? 后序遍历????????后序遍历(LRD)是二叉树遍历的一种,也叫做后根遍历、后序周游,可记做左右根。?? ????????后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后遍历根结点。即: 若二叉树为空则结束返回,否则: ????????(1)后序遍历左子树 ????????(2)后序遍历右子树 ????????(3)访问根结点 ?如图所示,中序遍历的结果为:DEBFGCA\ ?递归方法
?测试结果: 非递归方法?
测试结果: ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 9:35:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |