树及二叉树的概念习题.docVIP

  • 15
  • 0
  • 约1.06万字
  • 约 17页
  • 2018-06-09 发布于浙江
  • 举报
第一讲 树及二叉树的概念 【内容索引】 一、 引言 2 二、 树的概念 2 1. 树的定义 2 2. 树的基本术语 3 三、 二叉树 4 1. 二叉树的定义 4 2. 二叉树的性质 4 3. 二叉树的存储结构 7 4. 二叉树的遍历 9 四、 二叉树的运算 10 1. 二叉树的遍历运算 10 实例一 11 2. 二叉链表的生成算法 11 实例二 11 实例三 13 3. 按层次遍历二叉树 14 实例四 14 引言 树是一种重要的非线性数据结构,在树这种数据结构中,所有数据元素之间的关系具有明显的层次特性。 例: 1. 网站设计中的导航结构 2. 操作系统中的目录结构 3.本文的目录结构。 在图1.1中,用图形表示树这种数据结构时,很像自然界中的树,只不过是一棵到长的树,因此,这种数据结构就用树来命名。 图1.1 在解决实际问题中,我们常常会用到树这种数据结构。 例:请你设计一个电子词典,用来查找单词。我们需要考虑两个问题,一是要提高查找和定位的速度;二是要尽量节省存储的空间。显然用线性数据结构不是好的选择,于是就有人提出了用树来解决问题。图1.2就是用树构造的单词查找树,例如要查找ASCII,我们可以从根开始,查找到A,然后是S,接下去是C,这样就很快查找到整个单词。 图1.2 树的概念 树的定义 树(Tree)是由一个或多个结点组成的有限集合T,且满足: 有且仅有一个称为根的结点; 其余结点分成n(n≥0)个互不相交的集合T1, T2, …Tn,其中每个集合都是一棵树,并且称Ti (1≤i≤n) 为根的子树。 显然树是一个递归定义。图1.3是一棵具有13个结点的树,其中A结点是树的根,其余12个结点划分为3个互不相交的子集: T1 = { B, E ,F, K, L } T2 = {C ,G } T3 = { D, H, I, J, M } T1, T2, T3 均是根A的子树,其本身也都是树。我们还可以继续划分,集合{E, K L}是B的子树,以此类推。所以我们除了用图来表示树的结构,还可用广义表来表示树,例如,图1.3的树用广义表表示如下: T=(A(B(E(K,L),F)),C(G),D(H(M),I,J))) 图1.3 树的图形表示 树的基本术语 因为树的结构比其他线性结构更复杂,所以我们需要用一些术语来描述结点和结点之间的关系。 根结点 每一棵树都有一个根结点,如图1.3中A结点。根据树的定义,树中的每一个结点都可以看成是它的一个子树的根。如结点B, C, D分别是子树T1, T2, T3的根结点。但是A结点与其它结点不同的是,只有后继结点而没有前趋结点,所以A被称为树的根。 结点的度和树的度 一个结点的子树的个数称为是该结点的度。如根结点A有3个子树,则A结点的度为3;而C结点只有1个子树,则C结点的度为1。 树中度数最大的结点的度为树的度。树T的度是3。 分支结点和叶结点 度为0的结点称为叶结点或端结点。如K, L, F, G, M, I, J, 这些结点都是树的叶结点。度大于0的结点称作分支结点。 子结点和父结点 每个结点的子树的根结点称为该结点的儿子(子结点),而该结点称为子结点的父亲(父结点)。如A结点为B结点的父结点,B为A的子结点。树中的一条边连接两个结点,这两个结点互为父子关系。 有同一个父结点的所有子结点称为兄弟。如B, C, D就互为兄弟。 某结点到整棵树的根结点的路径上的所有结点叫作该结点的祖先。如结点K到根结点A的路径上的所有结点E, B, A,都是结点K的祖先。 结点的层数和树的深度 树既是一种递归结构,也是一种层次结构,树中的每个结点都处在一定的层数上。结点的层数从树根开始定义,设根结点的层号为1,其儿子结点的层号为2,以此类推;若某结点在第L层,则该结点的儿子处于第L+1层。树中结点最大的层号为树的深度。树T的深度为4。 有序树和无序树 若结点的子树有次序排列,且先后次序不能互换,这样的树称为有序树,反之为无序树。 森林 森林是若干棵互不相交的树的集合。若删除图1.3中树T的根结点A,就得到一个森林{T1, T2, T3}。 二叉树 二叉树的定义 如果树中每个结点的子树个数小于或等于2的树,并且各子树的次序不能互换,有左、右子树之分,这样的树称为二叉树。所以二叉树是一种度为2的有序树。 根据定义,二叉树共有5种不同的基本形态,如图1.4所示。 空二叉树; 只有一个根结点的二叉树; 右子树为空的二叉树; 左子树为空的二叉树; 左、右子树非空的二叉树。 二叉树的性质 二叉树具有下列重要性质: 性质1 在二叉树中,第i层的结点总数不超过2i-1(i=1); 性质2 深度为k的二叉树的结点总数不超过2k-1(k=1)。 请看图1.5中的二叉树: 第1层 1个结点,20 第2层 2个结点,2

文档评论(0)

1亿VIP精品文档

相关文档