1.树与二叉树的基本概念,基本特征、名词术语;
1.树的定义
树(Tree)是 n(n≥0)个有限数据元素的集合。当 n=0 时,称这棵树为空树。在一棵非
树T中:
(1)有一个特殊的数据元素称为树的根结点,根结点没有前驱结点;
(2)若 n>1,除根结点之外的其余数据元素被分成 m(m>0)个互不相交的集合 T1,T2,...,
Tm,其中每一个集合 Ti(1≤i≤m)本身又是一棵树。树 T1,T2,...,Tm 称为这个根结点的子 树。
2.相关术语
(1)结点的度:结点所拥有的子树的个数称为该结点的度。
(2)叶结点:度为 0 的结点称为叶结点,或者称为终端结点。
(3)分支结点:度不为 0 的结点称为分支结点,或者称为非终端结点。一棵树的结点除叶结点外,其余的都是分支结点。
(4)孩子、双亲、兄弟:树中一个结点的子树的根结点称为这个结点的孩子。这个结点称为它孩子结点的双亲。具有同一个双亲的孩子结点互称为兄弟。
(5)路径、路径长度:如果一棵树的一串结点 n1,n2,...,nk 有如下关系:结点 ni 是 ni+1 的父结点(1≤i<k),就把 n1,n2,...,nk 称为一条由 n1 至 nk 的路径。这条路径的长度是 k-1。
(6)祖先、子孙:在树中,如果有一条路径从结点 M 到结点 N,那么 M 就称为 N 的祖先,而N称为M的子孙。
(7)结点的层数:树的根结点的层数为 1,其余结点的层数等于它的双亲结点的层数加1。
(8)树的深度:树中所有结点的最大层数称为树的深度。
(9)树的度:树中各结点度的最大值称为该树的度。
(10)有序树和无序树:如果一棵树中结点的各子树从左到右是有次序的,即若交换了某结点各子树的相对位置,则构成不同的树,称这棵树为有序树;反之,则称为无序树。
(11)森林:零棵或有限棵不相交的树的集合称为森林。自然界中树和森林是不同的概念,但在数据结构中,树和森林只有很小的差别。任何一棵树,删去根结点就变成了森林。
1.二叉树
二叉树(Binary Tree)是 n 个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。当集合为空时,称该二 叉树为空二叉树。在二叉树中,一个元素也称作一个结点。二叉树是有序的,即若将其左、右子树颠倒,就成为另一棵不同的二叉树。即使树中结点只有一棵子树,也要区分它是左子树还是右子树。
2.完全二叉树与满二叉树的基本概念,二叉树的基本性质及其应用;
2.满二叉树与完全二叉树
(1)满二叉树
在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子结点都在同 一层上,这样的一棵二叉树称作满二叉树。
(2)完全二叉树
一棵深度为 k 的有 n 个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行 编号,如果编号为 i(1≤i≤n)的结点与满二叉树中编号为 i 的结点在二叉树中的位置相同,则 这棵二叉树称为完全二叉树。完全二叉树的特点是:叶子结点只能出现在最下层和次下层, 且最下层的叶子结点集中在树的左部。显然,一棵满二叉树必定是一棵完全二叉树,而完全 二叉树未必是满二叉树。
3.二叉树的性质
性质 1
性质 2
性质 3
性质4
3.二叉树的顺序存储结构与二叉链表存储结的基本原理;
4.二叉树的前序遍历、中序遍历、后序遍历和按层次遍历,重点是二叉树在以二叉链表作为存储结构基础上各种遍历算法(包括非递归算法)的设计与应用;
前序遍历
中序遍历
后序遍历
按层次遍历
非递归算法
5.二叉排序树的基本概念、建立(插入)、查找以及平均查找长度ASL的计算。
书中,需整理相关
w