| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 二叉树的遍历#前序、中序、后序和层序遍历#包会#巨详细 -> 正文阅读 |
|
[数据结构与算法]二叉树的遍历#前序、中序、后序和层序遍历#包会#巨详细 |
前序遍历:先输出父节点 再遍历左子树和右子树 中序遍历:先遍历左子树 在输出父节点 最后遍历右子树 后序遍历:先遍历左子树 再遍历右子树 最后输出父节点 层序遍历:按照层级逐层遍历 思想:不管是那种遍历,都是从根节点(A)出发!这很重要。前序也好,中序也好,把他们看成是一个任务,如果任务中执行到某个位置,发现这个字母竟然他下面是个树,此时就先别遍历他,而是先把包含这个字母在内的树,看成一个整体,再看一眼我要执行的任务,下次若还发现是树的元素还是这样操作。 前序遍历:从A(父)出发,本应该然后是B,我发现B竟然下面是个树,就先不遍历他,我把下面的树看成一个整体,然后接着前序遍历,从B(父)出发,到了D,同理,直到我遍历到了F,然后遍历F的右,本应该是G,但是G下面有个树,对这个树继续前序遍历,然后G(父)、H(左)、I(右)。D的子树执行完了,到了D的右(E),B的子树也执行完了,到了C(右)。 中序遍历:从A出发(因为A是父没有取),理应是取B,但是B有子树,往下到D,把包含D在内的树看成一个整体,先取到F(D子树中的左),然后取D子树中的D(父),然后理应再取D子树中右G,但是G有子树,故先取G子树中的左(H)、父(G)、右(I)。到这D的子树取完了,再把目光放到包含B在内的B的子树,该取D的父(B)然后取E(右)。到这B的子树取完了,该取父(A),然后C(右) 后序遍历:从A出发(因为A是父没有取),理应是取B,但是B有子树,往下到D,先取到F(D子树中的左),然后理应取D子树中的G,但是G有子树,在G的子树中取H(左)、再取I(右)、G(父)。G子树取完了,然后在D的子树中,该取D(父)。D的子树取完了,在B的子树中,该取E(右),然后取B(父)。B的子树取完了,然后取C(右),然后取A(父) 层序遍历: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/25 17:34:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |