中级数据库工程师笔记(七)------ 树和图

1、树

  • 结点的度:一个结点的子树的个数
  • 树的度:树中各结点的度的最大值
  • 结点的层次:根为第一层,根的孩子为第二层
  • 树的高度(深度):树的最大层次数

1.1 树的遍历

(1)前序遍历:根左右

(2)后序遍历:左右根

(3)层次遍历:从上到下从左到右访问

1.2 二叉树

(1)第 i 层上的结点数目最多为2^{i-1}( i ≥ 1)。

(2)深度为 k 的二叉树最多有2^{k} - 1 个结点(k ≥ 1)。

(3)在任意一颗二叉树中,若终端结点数为n0,度为2的节点数为n2,则n0=n2+1。

(4)具有n个结点的完全二叉树的深度为⌊ log_{2} n ⌋ +1。

(5)对一颗有n个结点的完全二叉树的结点按层次自左至右进行编号,则对任意结点 i 有:

  • 若 i = 1,则结点 i 是二叉树的根,无双亲,若 i > 1,则其双亲为 ⌊ i / 2 ⌋。
  • 若 2i > n,则结点 i 无左孩子,否则其左孩子为 2i。
  • 若 2i + 1 > n,则结点 i 无右孩子,否则其右孩子为 2i +1。

(6)深度为 k 的二叉树有2^{k} - 1个结点,则称其为满二叉树。

(7)深度为 k 、有 n 个结点的二叉树,当且仅当其每一个结点都与深度为 k 的满二叉树编号从1 到n的结点一一对应时,称为完全二叉树。

二叉树的遍历:

前序遍历、中序遍历、后序遍历

1.3 二叉排序树(二叉查找树)

具有以下性质:

(1)若左子树不空,则左子树上所有结点的值均小于他的根结点的值;

(2)若右子树不空,则右子树所有节点的值均大于等于他的根结点的值;

(3)左右子树也分别为二叉排序树

1.4 平衡二叉树(AVL树)

它是一颗空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一颗平衡二叉树。

1.5 最优二叉树

给定n个权值作为n的叶子结点,构造一颗二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

2、图

图G是由两个集合V和E构成的二元组,即G = (V ,E),其中V是图中顶点的非空有限集合,E是图中边的有限集合。

(1)有向图:每条边都是有方向的,顶点间的关系用<vi,vj>表示;

(2)无向图:每条边都是无方向的,顶点间关系用(vi,vj)表示;

(3)完全图:图中任意两个顶点都有一条边相连;

  • 有向完全图:n 个顶点的有向图有n(n - 1 )条边。
  • 无向完全图:n 个顶点的无向图有n(n - 1) / 2条边。

2.1 连通图

无向图中,若从顶点v1到顶点v2有路径,则称顶点v1与v2是连通的。如果图中任意一对顶点都是连通的,则称此图是连通图。如果无向图是连通的,那么边的数目大于等于顶点的数目减1。

2.2 强连通图

有向图中,若对于每一对顶点vi 和vj ,都存在一条从vi 到 vj和从vj 到 vi 的路径,则称此图为强连通图。

2.3 生成树(最小生成树)

是一个极小连通子图,它含有图中全部 n 个顶点,但只有 n - 1 条边。

  • 如果在生成树上添加一条边,必定构成环。
  • 若图中有 n 个顶点,却少于 n - 1条边,必为非连通图。

2.4 图的存储

(1)邻接矩阵:对于一个具有n个结点的图,可以使用 n * n 的矩阵来表示它们间的邻接关系。

(2)邻接表:由表头结点和表结点两部分组成,其中图中每个顶点均对应一个存储在数组中的表头结点。把该表头结点的相邻结点依次存放于表头结点所指向的单链表中。

2.5 图的遍历

(1)深度优先搜索(DFS)

  • 先访问起始点 v ;
  • 若 v 的第一个邻接点没访问过,则访问第一个邻接点;
  • 若当前邻接点已访问过,则找 v 的第二个邻接点重新遍历。

(2)广度优先搜索(BFS)

  • 在访问了起始点 v 之后,依次访问 v 的邻接点;
  • 然后再顺序访问这些点的下一层未被访问过的邻接点。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值