当前课程知识点:数据结构(上) > 第五章 二叉树 > (e1)先序遍历 > 05E1-7 新构思
我们不妨将每一条这样的左侧链
也就是这样的一个left branch
突出地绘制出来
当然它的长度必然有限
我们假设长度为d 终止于Ld
那么相应的呢 沿途的每一个节点
也应该各自有一个右孩子以及右子树
右孩子以及右子树
尽管有可能这个右孩子或者这个右子树
根本就不存在
我们也不妨将它折叠起来
统一地画成这样一个形式
你不难说服自己
任何一棵二叉树都可以抽象地表示为
这样的一个沿左侧链不断下行
同时 其它的部分分别地归入于
这个左侧链上沿途各个节点的
右子树的形式
经过了这样的一个抽象
我们就很清楚地能看到
整个先序遍历的次序和脉络了
的确可以看到在任何
这样的一棵子树的局部
我们的访问都是
首先沿着这样一个左侧的分支
依次地去访问各个节点
正如我们刚才所看到的
第一批被访问的节点
必然是左侧分支上沿途的这些节点
当然这样一个过程必然会终止于
刚才我们所约定的那个Ld
的确如此
整个遍历的这个故事
在这个地方情节发生了转折
因为接下来 从宏观上看
我们应该调转方向 自底而上的
依次去遍历刚才所定义的
这一系列的右子树
没错 最低的这棵右子树
稍高一些的右子树
再以及更高一些的
乃至再高一些的
以至最高的那棵右子树
对于这些右子树 我们需要做什么呢?
同样地 是做遍历
好 我们再总结一下
整个过程分为两个阶段
首先是自顶而下地依次访问
左侧链上的沿途节点
再倒过来 自底而上地依次遍历
各个层次上的每一棵右子树
这就是我们整个先序遍历的宏观过程
而我们的算法
正是沿着这样的一个思路来进行设计的
-选课之前
--写在选课之前
--宣传片
-考核方式
--考核方式
-OJ系统说明
--关于OJ
--1-注册与登录
--2-界面与选课
--3-提交测试
-关于课程教材与讲义
--课程教材与讲义
-关于讨论区
--关于讨论区
-微信平台
--html
-PA晋级申请
--PA晋级
-(a)计算
--演示
--(a)计算--作业
-(b)计算模型
-(b)计算模型--作业
-(c)大O记号
-(c)大O记号--作业
-(d)算法分析
-(d)算法分析--作业
-(e)迭代与递归
-(e)迭代与递归--作业
-(xc)动态规划
-- 演示
-(xc)动态规划--作业
-本章测验--作业
-(a)接口与实现
--02A-5 复制
-(a)接口与实现--作业
-(b)可扩充向量
-(b)可扩充向量--作业
-(c)无序向量
--02C-1 概述
--02C-3 插入
--02C-6 查找
--02C-8 遍历
-(c)无序向量--作业
-(d1)有序向量:唯一化
-(d1)有序向量:唯一化--作业
-(d2)有序向量:二分查找
-(d2)有序向量:二分查找--作业
-(d3)有序向量:Fibonacci查找
-(d3)有序向量:Fibonacci查找--作业
-(d4)有序向量:二分查找(改进)
-(d4)有序向量:二分查找(改进)--作业
-(d5)有序向量:插值查找
-第二章 向量(下)--(d5)有序向量:插值查找
-(e)起泡排序
--02E-2 改进
--02E-3 反例
-(e)起泡排序--作业
-(f)归并排序
-(f)归并排序--作业
-本章测验--作业
-(a)接口与实现
--03A-4 实现
-(a)接口与实现--作业
-(b)无序列表
--03B-2 查找
-(b)无序列表--作业
-(c)有序列表
--03C-3 查找
-(c)有序列表--作业
-(d)选择排序
--03D-1 构思
--03D-2 实例
--03D-3 实现
--03D-4 推敲
--03D-6 性能
-(d)选择排序--作业
-(e)插入排序
--03E-1 经验
--03E-2 构思
--03E-3 对比
--03E-4 实例
--03E-5 实现
-(e)插入排序--作业
-(xd)习题辅导:LightHouse
-本章测验--作业
- (a)栈接口与实现
--04A-1 栈
--04A-2 实例
--04A-3 实现
- (a)栈接口与实现--作业
-(c1)栈应用:进制转换
-第四章 栈与队列--(c1)栈应用:进制转换
-(c2)栈应用:括号匹配
-(c2)栈应用:括号匹配--作业
-(c3)栈应用:栈混洗
-第四章 栈与队列--(c3)栈应用:栈混洗
-(c4)栈应用:中缀表达式求值
-(c4)栈应用:中缀表达式求值--作业
-(c5)栈应用:逆波兰表达式
-第四章 栈与队列--(c5)栈应用:逆波兰表达式
-(d)队列接口与实现
--04D-1 接口
--04D-2 实例
--04D-3 实现
-第四章 栈与队列--本章测验
-(a)树
--05A-1 动机
--05A-2 应用
-(a)树--作业
-(b)树的表示
--05B-2 父亲
--05B-3 孩子
-第五章 二叉树--(b)树的表示
-(c)二叉树
-(c)二叉树--作业
-(d)二叉树实现
-(d)二叉树实现--作业
-(e1)先序遍历
-(e1)先序遍历--作业
-(e2)中序遍历
-第五章 二叉树--(e2)中序遍历
-(e4)层次遍历
-第五章 二叉树--(e4)层次遍历
-(e5)重构
-(e5)重构--作业
-本章测验--作业
-(a)概述
-(a)概述--作业
-(b1)邻接矩阵
-(b1)邻接矩阵--作业
-(c)广度优先搜索
--06C-2 策略
--06C-3 实现
--06C-5 实例
-(c)广度优先搜索--作业
-(d)深度优先搜索
--06D-1 算法
--06D-2 框架
--06D-3 细节
-(d)深度优先搜索--作业
-第六章 图--本章测验