数据结构(六) - 树

数据的逻辑结构:

1:1, 1:n,m:n 指的是元素的前驱和后继的个数

树型结构:

树的定义

树的表示方式:

树的其他表示方式:

树的基本术语

有序树/无序树:

森林:

线性结构和树结构的比较:

二叉树的定义

为什么要重点研究每个结点最多只有两个 “叉” 的树?

  • 二叉树的结构最简单,规律性最强
  • 可以证明,所有树都能转化为唯一对应的二叉树,不失一般性
  • 普通树(多叉树)若不转化为二叉树,则运算很难实现

   二叉树在树结构的应用中有着非常重要的作用,因为对二叉树的许多操作算法简单,而任何树都可以与二叉树相互转换
这样就解决了树的存储结构及其运算中存在的复杂性

注意:二叉树不是树的特殊情况,它们是两个概念

思考:

二叉树的五种基本形态:

二叉树的性质

  • 性质1

提问:第i层上最少有 几个 结点?(1)

  • 性质2

提问: 深度为k时,最少有几个结点? (k)

  • 性质三

从下往上分析有: B = n - 1 (n为二叉树的结点树)
从上往下分析有: B = n2 * 2 + n1 * 1

因此: n-1 = n2 * 2 + n1 * 1 => n = n2 * 2 + n1 * 1 + 1

又因为: n = n2 + n1 + n => n2 + n1 + n0 = n2 * 2 + n1 * 1 + 1 => n0 = n2 + 1 (n 的下标为度)

两种特殊形式的二叉树

满二叉树

  • 满二叉树在同样深度的二叉树中结点个数最多
  • 满二叉树在同样深度的二叉树中叶子结点个数最多

完全二叉树

通俗讲就是:完全二叉树的每个结点可以在满二叉树中找到并且位置也一样

特点:

性质4:

补充数学知识:在数学中,对数是对求幂的逆运算,正如除法是乘法的逆运算,反之亦然。
如果a的x次方等于N(a>0,且a≠1),那么数x叫做以a为底N的对数(logarithm),记作x=loga N。其中,a叫做对数的底数,N叫做真数。

二叉树的存储结构

顺序存储结构

例1:

例2:

缺点:

链式存储结构

二叉链表

练习:

2n : 理论上的最多可能存在的指针域

n-1 : n个结点,每个结点和父结点都有一条连线,也就是有一个指针域。但是根结点没有

三叉链表

每个结点增加存储双亲结点的指针,方便查找双亲结点

posted @ 2022-04-10 13:16  chuangzhou  阅读(59)  评论(0编辑  收藏  举报