版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
版权
数据结构专栏收录该内容
5 篇文章0 订阅
订阅专栏

树

本人是新人,对树的概念还是不太清楚,故写个学习概念的文章,来帮助自己学习树这一数据结构。
定义1.树是没有简单回路的连通无向图。
定理1.一个无向图是树当且仅当在它的每对顶点间存在唯一简单回路。
定义2.有根树是指一个顶点(指所有节点)作为根并且每条边的方向都离开根的树。
关于孩子,父母与深度和高度什么的,用两张图就能解决的就不多赘述:
定义3.若有根树的每个内点(指除了叶之外的所有点)都有不超过m个孩子,则它为m叉树,若该树的每个内点都恰好有m个孩子,则称它为满m叉树。把m = 2的m叉树称为二叉树。
如第一幅图就是个二叉树。
下图就是个满二叉树:
有序根树的每个内点的孩子都从左到右依次递增:
自己p的图
在有序二叉树中,左边的更小值称为左子,右边的较大值称为右子:
注意,此树必须有序。
定理2.带有n个顶点的树含有n - 1条边。
定理3.带有i个内点的满m叉树含有n = m * i + 1个顶点。
ps:根是内点,除非它是图中唯一的顶点,在这种情况下,它也是叶。
定理4.一个满m叉树若有:
(i)n个顶点,则有i = (n-1) / m个内点和l = [(m-1) * n + 1] / m个叶;
(ii)i个内点,则有n = m * i + 1个顶点和l = (m-1) * i + 1个叶;
(iii)l个树叶,则有n = (m * l - 1) / (m - 1)个顶点和i = (l - 1) / (m - 1)个内点;
平衡m叉树:表示某树T的所有叶大约在同一层上(+-1):
这就是一个平衡二叉树,因为它的所有叶都在2层与3层上。
同理一个满二叉树也是个平衡二叉树。
在m叉树中叶数的界:常常用到m叉树中叶树的上界。定理5用m叉树的高度给出了一个这样的界。
定理5.在高度为h的m叉树中最多有m^h个叶;
推论1.若一颗高度为h的m叉树带有l个叶,则h >= 向上取整logm(l)。若这棵树是满的和平衡的,则h = 向上取整logm(l)。
参考资料:
《离散数学及其应用(第七版)》