1、数据构造(本)课程作业作业3(本某些作业覆盖教材第6-7章内容)一、单项选取题1.假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为( )。A15 B16 C17 D472二叉树第k层上最多有( )个结点。 A2k B2k-1 C2k-1 D2k-1 3二叉树深度为k,则二叉树最多有( )个结点。A2k B2k-1C2k-1 D2k-14. 设某一二叉树先序遍历为abdec,中序遍历为dbeac,则该二叉树后序遍历顺序是( )。 Aabdec Bdebac Cdebca Dabedc5将具有150个结点完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号
2、为1,则编号为69结点双亲结点编号为( )。A33 B34 C35 D366如果将给定一组数据作为叶子数值,所构造出二叉树带权途径长度最小,则该树称为( )。A哈夫曼树 B平衡二叉树 C二叉树 D完全二叉树7下列关于二叉树说法对的是( )。A二叉树中度为0结点个数等于度为2结点个数加1B二叉树中结点个数必不不大于0C完全二叉树中,任何一种结点度,或者为0或者为2 D二叉树度是28在一棵度为3树中,度为3结点个数为2,度为2结点个数为1,则度为0结点个数为( )。A4 B5 C6 D79在一棵度具备5层满二叉树中结点总数为( )。A31 B32 C33 D1610. 运用n个值作为叶结点权生成哈
3、夫曼树中共包具有( )个结点。 A. n B. n+1 C. 2*n D. 2*n-1 11. 运用3、6、8、12这四个值作为叶子结点权,生成一棵哈夫曼树,该树中所有叶子最长带权途径长度为( )。 A. 18 B. 16 C. 12 D. 3012在一棵树中,( )没有前驱结点。A分支结点 B叶结点 C树根结点 D空结点13在一棵二叉树中,若编号为i结点存在右孩子,则右孩子顺序编号为( )。 A2i B2i-1 D2i+1 C2i+2 14设一棵哈夫曼树共有n个叶结点,则该树有( )个非叶结点。 An Bn-1 Cn+1 D2n15设一棵有n个叶结点二叉树,除叶结点外每个结点度数都为2,则该
4、树共有( )个结点。 A2n B2n-1 C2n+1 D2n+2 16在一种图G中,所有顶点度数之和等于所有边数之和( )倍。 A1/2 B1 C2 D4 17在一种有向图中,所有顶点入度之和等于所有顶点出度之和( )倍。A1/2 B2 C1 D418一种具备n个顶点无向完全图包括( )条边。 An(n-1) Bn(n+1) C n(n-1)/2 D n(n+1)/219一种具备n个顶点有向完全图包括( )条边。 An(n-1) Bn(n+1) C n(n-1)/2 D n(n+1)/220对于具备n个顶点图,若采用邻接矩阵表达,则该矩阵大小为( )。 An Bn2 Cn-1 D(n-1)22
5、1对于一种具备n个顶点和e条边无向图,若采用邻接表表达,则所有顶点邻接表中结点总数为( )。 An Be C2n D2e22在有向图邻接表中,每个顶点邻接表链接着该顶点所有( )邻接点。 A入边 B 出边 C入边和出边 D 不是入边也不是出边 23邻接表是图一种( )。 A顺序存储构造 B链式存储构造 C索引存储构造 D散列存储构造 24如果从无向图任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是( )。 A完全图 B连通图 C有回路 D一棵树25下列关于图遍历说法不对的是( )。A连通图深度优先搜索是一种递归过程B图广度优先搜索中邻接点寻找具备“先进先出”特性C非连通图不能用深
6、度优先搜索法D图遍历规定每一顶点仅被访问一次 26无向图邻接矩阵是一种( )。 A对称矩阵 B 零矩阵 C上三角矩阵 D对角矩阵27图深度优先遍历算法类似于二叉树( )遍历。A先序 B 中序 C后序 D层次28已知下图所示一种图,若从顶点V1出发,按深度优先搜索法进行遍历,则也许得到一种顶点序列为( )。 AV1V2V4V8V3V5V6V7 BV1V2V4V5V8V3V6V7 CV1V2V4V8V5V3V6V7 DV1V3V6V7V2V4V5V8V6V7V1V2V3V8V4V5二、填空题1结点度是指结点所拥有 。2树度是指 。3度不不大于0结点称作 或 。4度等于0结点称作 或 。5在一棵树中
7、,每个结点 或者说每个结点 称为该结点 ,简称为孩子。6从根结点到该结点所经分支上所有结点称为该结点 。7树深度或高度是指 。8具备n个结点完全二叉树深度是 。9先序遍历二叉树操作定义为;若二叉树为空,则为空操作,否则进行如下操作,访问二叉树 ;先序遍历二叉树 ,先序遍历二叉树 。10中序遍历二叉树操作定义为;若二叉树为空,则为空操作,否则进行如下操作,中序遍历二叉树 ;访问而叉树 ,中序遍历二叉树 。11后序遍历二叉树操作定义为;若二叉树为空,则为空操作,否则进行如下操作,后序遍历二叉树 ;后序遍历二叉树 ,访问而叉树 。12将树中结点赋上一种有着某种意义实数,称此实数为该结点 。13树带权
8、途径长度为树中所有叶子结点 。14哈夫曼树又称为 ,它是n个带权叶子结点构成所有二叉树中带权途径长度WPL 。15若以4,5,6,7,8作为叶子结点权值构造哈夫曼树,则其带权途径长度是 。16具备m个叶子结点哈夫曼树共有 结点。17在图中,任何两个数据元素之间都也许存在关系,因而图数据元素之间是一种 关系。18图遍历是从图某一顶点出发,按照一定搜索办法对图中 各做 访问过程。19图深度优先搜索遍历类似于树 遍历。20图广度优先搜索类似于树 遍历。21具备n个顶点有向图邻接矩阵,其元素个数为 。22图惯用两种存储构造是 和 。23在有n个顶点有向图中,每个顶点度最大可达 。24在一种带权图中,两
9、顶点之间最段途径最多通过 条边。25为了实现图深度优先搜索遍历,其非递归算法中需要使用一种辅助数据构造为 。三、综合题1写出如下图所示二叉树先序、中序和后序遍历序列。ajfghidceb2已知某二叉树先序遍历成果是:A,B,D,G,C,E,H,L,I,K,M,F和J,它中序遍历成果是:G,D,B,A,L,H,E,K,I,M,C,F和J,请画出这棵二叉树,并写出该二叉树后续遍历成果。3已知一棵完全二叉树共有892个结点,求 树高度 叶子结点数 单支结点数 最后一种非终端结点序号4给出满足下列条件所有二叉树。(1)先序和中序相似(2)中序和后序相似(3)先序和后序相似5假设通信用报文由9个字母A、
10、B、C、D、E、F、G、H和I构成,它们浮现频率分别是:10、20、5、15、8、2、3、7和30。请请用这9个字母浮现频率作为权值求:(1)设计一棵哈夫曼树;(2)计算其带权途径长度WPL;(3)写出每个字符哈夫曼编码。6请依照如下带权有向图G(1)给出从结点v1出发分别按深度优先搜索遍历G和广度优先搜索遍历G所得结点序列;(2)给出G一种拓扑序列;(3)给出从结点v1到结点v8最短途径。7已知无向图G描述如下:G=(V,E)V=V1,V2,V3,V4,V5E=(V1,V2),(V1,V4),(V2,V4),(V3,V4),(V2,V5),(V3,V4),(V3,V5)(1)画出G图示;(2
11、)然后给出G邻接矩阵和邻接表;(3)写出每个顶点度。四、程序填空题1. 下面函数功能是返回二叉树BT中值为X结点所在层号,请在划有横线地方填写适当内容。 int NodeLevel(struct BinTreeNode* BT,char X) if(BT=NULL) return 0; /*空树层号为0*/ else if(BT-data=X) return 1; /*根结点层号为1*/ /*向子树中查找X结点*/ else int c1=NodeLevel(BT-left,X); if(c1=1) _(1)_; int c2=_(2)_ _; if _(3)_; /若树中不存在X结点则返回0
12、 else return 0; 2. 下面函数功能是按照图深度优先搜索遍历办法,输出得到该图生成树中各条边,请在划有横线地方填写适当内容。 void dfstree(adjmatrix GA,int i,int n) int j; visitedi=1; (1) if(GAij!=0 & GAij!=MaxValue & !visitedj) printf(%d,%d)%d,i,j,GAij); (2) 五、算法设计题1写一种将一棵二叉树复制给另一棵二叉树算法。 2依照下面函数声明编写出求一棵二叉树中叶子结点总数算法,该总数值由函数返回。假定参数BT初始指向二叉树根结点。 int BTreeLeafCount(struct BTreeNode* BT);六、完毕:实验3栈、队列、递归程序设计 实验4图存储方式和应用依照实验规定(见教材P203)认真完毕本实验,并提交实验报告。