目录

  • 1 绪论
    • 1.1 数据结构的定义和基本术语
    • 1.2 数据的逻辑结构和存储结构
    • 1.3 算法和算法分析
  • 2 线性表
    • 2.1 线性表的定义及逻辑结构
    • 2.2 顺序存储结构
    • 2.3 链式存储结构
    • 2.4 应用:一元多项式的表示和相加
  • 3 栈和队列
    • 3.1 栈
    • 3.2 队列
  • 4 串
    • 4.1 资源
  • 5 数组
    • 5.1 数组
    • 5.2 广义表
  • 6 树和二叉树
    • 6.1 树的定义和基本术语
    • 6.2 二叉树
    • 6.3 遍历二叉树和线索二叉树
    • 6.4 树和森林
    • 6.5 哈夫曼树及其应用
  • 7 图
    • 7.1 图的定义和基本术语
    • 7.2 图的存储结构
    • 7.3 图的遍历
    • 7.4 图的应用
  • 8 查找
    • 8.1 查找的基本概念
    • 8.2 基于线性表的查找
    • 8.3 基于树的查找
    • 8.4 哈希表
  • 9 内部排序
    • 9.1 排序的定义和种类
    • 9.2 插入排序
    • 9.3 B-树和B+树
    • 9.4 交换排序
    • 9.5 选择排序
    • 9.6 归并排序和基数排序
  • 10 实验
    • 10.1 目的要求
      • 10.1.1 参考代码
树的定义和基本术语

(tree)n(n≥0)个结点的有限集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或简称为树根。树的递归定义如下:

1单个结点是一棵树,树根就是该结点本身。

2T1,T2,..,TkK棵树,它们的根结点分别为n1,n2,..,nk。用一个新结点n作为n1,n2,..,nk的父结点,则得到一棵新树,结点n就是新树的根,称n1,n2,..,nk为一组兄弟结点,它们都是结点n的儿子结点。T1,T2,,Tk为结点nk个子树。

3空集合也是树,称为空树。空树中没有结点,当然也没有关系。

下面是树的基本术语:

1)结点的度。结点的子树的个数。图6.1结点A的度为3;结点B的度为2;结点M的度为0

2)叶子。度为0的结点,也称为终端结点。

3)分支结点。度不为0的结点,也称为非终端结点。

4)树的度。树中结点的度的最大值。

5)层次、树的深度。根为第1层,根的孩子为第2。层次的最大值称为树的深度。

6)孩子、双亲。结点的子树的根称为孩子;这个结点称为孩子的双亲。

7)兄弟、堂兄弟。有相同双亲的结点互称为兄弟;同一层上不同双亲的结点互称为堂兄弟。

8)子孙、祖先。结点的直接后继和间接后继称为结点的子孙;从根到该结点的分支上的所有结点称为该结点的祖先。

9)有序树。各子树的顺序不能改变的树。

10)森林。m(m≥0)棵互不相交的树的集合。