欢迎来到天天文库
浏览记录
ID:38255037
大小:87.00 KB
页数:9页
时间:2019-06-07
《第12章树与二叉树》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验七 树与二叉树一、实验目的和要求1掌握树、森林及二叉树的基本概念。2掌握树、二叉树的存储结构。3掌握树、二叉树的遍历。4树和森林与二叉树之间的转换。二、基本概念l树的定义树是n(n>=0)个结点的有限集合T。如果n=0,称为空树;如果n>0,即在一棵空树中:(1)有且仅有一个特定的称为根的结点,它只有直接后继,但是没有直接前驱;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集合T1,T2,……,Tm,其中每一个集合本身又是一棵树,并且称这为根的子树。每棵子树的根结点有且仅有一个直接前驱,但是可以有0个或多个直接后继。l树的术语(1)树的结点:它包含数据
2、元素及若干指向其子树的分支。(2)结点的度:结点所拥有的子树的棵数。(3)树的度:树中所有结点的度是大值。(4)叶结点:即度为0的结点,称为叶结点或终端结点。(5)分支结点:除叶结点之外的其他结点,称为分支结点或终端结点。(6)孩子结点:若结点x有子树,则子树的根结点即成为结点x的孩子结点。(7)双亲结点:若结点x有孩子结点,则该结点x称为这些孩子结点的双亲结点。(8)兄弟结点:同一双亲的孩子结点之间称为兄弟。(9)祖先结点:从根结点到该结点所经过的所有结点称为该结点的祖先结点。(10)子孙结点:以某个结点为根的子树中的任一个结点都穭该结点的子孙结点。(11)结点所处的
3、层次:简称结点的层次,即从根到该结点所经过的分支条数。(12)树的高度:树中结点的最大层次,称为树的高度或深度。(13)有序树:树中各个结点的子树T1,T2,T3,……之间是有次序的,称为有序树。(14)无序树:树中各个结点的子树T1,T2,T3,……之间是没有有次序的,称为无序树。(15)森林:是m(m>0)棵互不相交的树的集合。l树的性质性质1:树T的结点总数n(n>=0)等于其所有结点的出度之和加1。性质2:度为k的树(k叉树)第i(i>=0)层至多有ki-1个结点。性质3:深度为h的k(k>1)叉树至多有个结点。性质4:具有n个结点的k叉树的最小深夜为:élog
4、k(n(k-1)+1)ù。l二叉树的定义(1)二叉树定义:二叉树是n(n>=0)个结点的有限集,二叉树或者是一棵空树,或者是一棵由一个根结点和两棵互不相交的分别称为根的左子树和右子树所组成的非空树,左子树和右子树又同样都是一棵二叉树。(2)满二叉树定义:若二叉树中每一层结点的个数都达到了最大,则称之为一棵满二叉树。(3)完全二叉树定义:若一棵二叉树至多只有最下面的两层上结点的度数可以小于2,并且最下一层上的结点都集中在该层最左边的若干位置上,则此二叉树称为完全二叉树。l二叉树的性质性质1:若二叉树的层次从0开始,则在二叉树的第i层最多有2i个结点。性质2:高度为k的二叉
5、树至多有2k-1个结点,(k>=1)。性质3:对任何一棵二叉树,如果叶子结点的个数为n0,度为2的结点数为n2,则n0=n2+1。性质4:具有n个结点的完全二叉树的深度为élog2(n+1)ù。性质5:对于具有n个结点的完全二叉树,按层次从上至下,每层从左至右对线个结点进行编号,则编号为i的结点有如下性质:(1)若i=1,则结点i为根结点,无双亲,否则的双亲编号为。(2)若2*i≤n,则结点i有左孩子,左孩子的编号为2*i,否则,结点i无左孩子,肯定是叶子。(3)若2*i+1≤n,则结点i有右孩子,右孩子的编号为2*i+1,否则,结点i无右孩子。(4)除根外,编号为奇数
6、的结点为其双亲的右孩子,偶数结点为其双亲的左孩子。l二叉树的存储结构同线性表一样,二叉树也有顺序和链式两种存储结构。(1)顺序存储结构顺序存储一棵二叉树时,首先对该树中每个结点进行编号,然后以各结点的编号为下标,把各结点的值对应存储到一维数组bt[n+1]中,其中bt[1]~bt[n]用来存入编号为1到n的结点的值,bt[0]用来存放结点的个数。这样的存储方式满足性质5。(2)链式存储结构通常采用的方法是,在每个结点中设置三个域:数据域data、指向其左孩子的指针域Lchild、指向其右孩子的指针域Rchild。这种结构称为二叉链表。LchilddataRchild结点
7、类型可定义为:structBtreeNode{Typedata;//结点的数据域BTreeNode*Lchild;//左孩子指针BTreeNode*Rchild;//右孩子指针};l二叉树的遍历二叉树的遍历是指按照一定次序访问树中所有结点,并且每个结点的值仅被访问一次的过程。根据二叉树的递归定义,二叉树是由三个基本单元组成:根结点、左子树和右子树,若用V、L和R分别表示上述三个基本单元,则共有六种次序的遍历方案:即VLR、LVR、LRV、VRL、RVL、RLV。如果限定按先左子树后右子树的顺序遍历二叉树,那么就只有VLR、LVR和LRV三
此文档下载收益归作者所有