数据结构之节点数与边数的计算(复习笔记)
一、树
1.1 二叉树
1、二叉树的基本概念:
二叉树是n(n>=0)个具有相同类型的数据元素的有限集合:
(1)当n=0时为空二叉树
(2)当n>0时,数据元素分为:一个称为根的数据元素和两棵分别称为左子树和右子树的数据元素的集合,左、右子树互不相交,并且他们也都是二叉树。
2、满二叉树:深度为k且含含有 2 k − 1 2^k-1 2k−1个结点的二叉树。
3、完全二叉树:树中所含的 n 个结点和满二叉树中编号为 1 至 n 的结点一一对应。
(1)深度为k的完全二叉树最少有 2 k − 1 2^{k-1} 2k−1个节点,最多有 2 k − 1 2^k-1 2k−1个节点(满二叉树也是完全二叉树)
4、性质3:叶结点与双分支结点的关系为对任何一棵二叉树T,设叶子结点数为 n 0 n_0 n0,度为2的结点数为 n 2 n_2 n2,那么, n 0 = n 2 + 1 n_0 = n_2 + 1 n0=n2+1。
证明:
假设度为 1 的结点数为n1 ,二叉树总结点数为n,那么:
n = n 0 + n 1 + n 2 n = n_0 + n_1 + n_2 n=n0+n1+n2
结点个数 n 与边数 e 满足关系
e = n – 1 e = n – 1 e=n–1
分支边数又节点引出,1度节点引出1条边,2度节点引入2条边,0度节点引出0条边,那么总的边数 e 可以表达为:
e = 0 × n 0 + 1 × n 1 + 2 × n 2 = n 1 + 2 n 2 e = 0×n_0 + 1×n_1 + 2×n_2 = n_1 + 2n_2 e=0×n0+1×n1+2×n2=n1+2n2
联立三个等式,得
n 0 = n 2 + 1 n_0 = n_2 + 1 n0=n2+1
证毕。
二、图
2.1 图的边与顶点的关系
1、设 n 为顶点数,e 为边或弧的条数:
无向图有:0 ≤ e ≤ n·(n-1) / 2
有向图有:0 ≤ e ≤ n·(n-1)
对有向图来说,每个顶点至多有n-1条弧与其它的n-1个顶点相连,则n个顶点至多有n·(n-1)条弧。
对无向图来说,每条边连接2个顶点,相当于两条对称的弧,故最多有n·(n-1)/2条边。
2、完全图是弧或边达到最大的图:
无向完全图:边数为n·(n-1)/2的无向图
有向完全图:弧数为n·(n-1)的有向图
权:图的边或弧上搭载的权重数据
网:当图上的边或弧上带有权值时,图称为网