当前课程知识点:数据结构(上) > 第五章 二叉树 > (a)树 > 05A-6 连通+无环
在一幅图中,如果任何两个点之间
都可以通过某一条路径彼此相连
我们就称它为连通图
connected graph
不难理解
连通图中的边不能太少
那么反过来 边如果太多呢?
就更容易出现我们刚才所说的环路
实际上 不包含任何环路的图
也称作acyclic graph 无环图
那么这里所说的连通性以及无环性
和树有什么关系呢?
不仅有关系 而且非常的密切
确切地讲 所谓的树
其实就是在无环与连通之间
达到一个平衡的一种特定的图
因为无环 所以它的边数不会太大
反之 正因为它又是连通的
所以它的边数又不能太少
在保证连通的前提下
它的边数能够达到最少
而在杜绝环路的前提下
它又能够使用尽可能多的边
当然这些都属于图论中的基本结论
在这里 我们只是直接引用
而不再进行严格的证明
作为以上性质的一个自然的推论
我们可以得知
在一棵树中 任何一个节点v
与树根之间都存在
而且仅存在唯一的一条通路
因此在记录这条路径的时候
我们往往也将根节点直接地省略掉
转而记作这样的形式
这个推论相当重要
既然任何一个点到根节点之间
都存在唯一的一条通路
那么每一个点也就因此拥有了一个
唯一的指标 也就是这条路径的长度
比如在这样的一棵树中
如果根是0号点的话
那么相对于这个点
那条路径就是这个
我们可以看到 这条路径的长度是1
所以这个节点所拥有的指标
也自然就是1
同样地 对于这个顶点来说
它所对应的路径
应该就是这样一条
可以看到 这条路径的长度是2
所以就是为什么
它拥有的指标是2
再类似地 这个节点
所对应的那条唯一的通路应该是这样
可以看到 这条路径的长度为3
所以这也是为什么
它拥有一个数值为3的指标
不难看出 按照这样的一个规则
的确可以对一棵树中的
每一个顶点都赋予一个确定的指标
请注意 每个节点能够获得
这样一个指标的前提
其实只有一个
也就是 在这样一棵树中
我们指定了某一个特定的节点作为根
一旦指定了根
其它的节点都将获得一个确定的指标
而进一步的呢
通过这样的一个指标
我们可以将所有的顶点划分为
不同的几类
如此所得的同一类顶点
所具有的指标都是相等的
所以也称为等价类
-选课之前
--写在选课之前
--宣传片
-考核方式
--考核方式
-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)深度优先搜索--作业
-第六章 图--本章测验