| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 二叉树的构建和遍历 -> 正文阅读 |
|
[数据结构与算法]二叉树的构建和遍历 |
从节点之间位置关系的角度来看,二叉树的遍历分为4种。 1.前序遍历。 前序遍历 1.首先输出的是根节点1。
中序遍历 二叉树的中序遍历,输出顺序是左子树、根节点、右子树。 遍历顺序如图: 1.首先访问根节点的左孩子,如果这个左孩子还拥有左孩子,则继续深入访问下去,一直找到不再有左孩子的节点,并输出该节点。显然,第一个没有左孩子的节点是节点4。 2.依照中序遍历的次序,接下来输出节点4的父节点2。 3.再输出节点2的右孩子节点5。 4.以节点2为根的左子树已经输出完毕,这时再输出整个二叉树的根节点1。 5.由于节点3没有左孩子,所以直接输出根节点1的右孩子节点3。 6.最后输出节点3的右孩子节点6。 遍历完成,代码如下:
后序遍历 二叉树的后序遍历,输出顺序是左子树、右子树、根节点。 遍历顺序如图: 顺序就说了,看图就好 遍历完成,代码如下:
层序遍历 层序遍历,顾名思义,就是二叉树按照从根节点到叶子节点的层次关系,一层一层横向遍历各个节点。 1.根节点1进入队列 2.节点1出队,输出节点1,并得到节点1的左孩子节点2、右孩子节点3。让节点2和节点3入队。 3.节点2出队,输出节点2,并得到节点2的左孩子节点4、右孩子节点5。让节点4和节点5入队。 4.节点3出队,输出节点3,并得到节点3的右孩子节点6。让节点6入队。 5.节点4出队,输出节点4,由于节点4没有孩子节点,所以没有新节点入队 6.节点5出队,输出节点5,由于节点5同样没有孩子节点,所以没有新节点入队。 7.节点6出队,输出节点6,节点6没有孩子节点,没有新节点入队。 遍历完成,代码如下:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 17:36:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |