数据结构第四到第六章的练习题
数据结构各章习题及答案
数据结构习题及解答第1章 概述【例1-1】分析以下程序段的时间复杂度。
for(i=0;i<n;i++)for(j=0;j<m;j++) A[i][j]=0;解:该程序段的时间复杂度为O (m*n )。
【例1-2】分析以下程序段的时间复杂度。
i=s=0; ①while(s<n){ i++; ②s+=i; ③}解:语句①为赋值语句,其执行次数为1次,所以其时间复杂度为O (1)。
语句②和语句③构成while 循环语句的循环体,它们的执行次数由循环控制条件中s 与n 的值确定。
假定循环重复执行x 次后结束, 则语句②和语句③各重复执行了x 次。
其时间复杂度按线性累加规则为O (x )。
此时s 与n 满足关系式:s ≥n ,而s=1+2+3+…+x 。
所以有:1+2+3+…+x ≥n ,可以推出:x=n n 241212811+±-=+±-x 与n 之间满足x=f(n ),所以循环体的时间复杂度为O (n ),语句①与循环体由线性累加规则得到该程序段的时间复杂度为O (n )。
【例1-3】分析以下程序段的时间复杂度。
i=1; ①while(i<=n) i=2*i; ②解:其中语句①的执行次数是1,设语句②的执行次数为f (n ),则有:n n f ≤)(2。
得:T(n)=O(n2 log)【例1-4】有如下递归函数fact(n),分析其时间复杂度。
fact(int n){ if(n<=1) return(1); ①elsereturn(n*fact(n-1)); ②}解:设fact(n)的运行时间函数是T(n)。
该函数中语句①的运行时间是O(1),语句②的运行时间是T(n-1)+ O(1),其中O(1)为常量运行时间。
由此可得fact(n)的时间复杂度为O(n)。
习题1一、单项选择题1.数据结构是指(1. A )。
A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(2. C )。
数据结构-习题-第六章-树
数据结构-习题-第六章-树和二叉树E F D G A B / + + * - C * 第六章 树和二叉树一、选择题1.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-,其前缀形式为( )A .-A+B*C/DE B. -A+B*CD/EC .-+*ABC/DE D. -+A*BC/DE【北京航空航天大学 1999 一、3 (2分)】2.算术表达式a+b*(c+d/e )转为后缀表达式后为( )【中山大学 1999 一、5】A .ab+cde/*B .abcde/+*+C .abcde/*++D .abcde*/++ 3. 设有一表示算术表达式的二叉树(见下图), 它所表示的算术表达式是( )【南京理工大学1999 一、20(2分)】A. A*B+C/(D*E)+(F-G)B.(A*B+C)/(D*E)+(F-G)C. (A*B+C)/(D*E+(F-G ))D.A*B+C/D*E+F-G4. 设树T 的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T 中的叶子数为( )A .5B .6C .7D.8【南京理工大学 2000 一、8 (1.5分)】5. 在下述结论中,正确的是()【南京理工大学 1999 一、4 (1分)】①只有一个结点的二叉树的度为0; ②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A.①②③ B.②③④ C.②④ D.①④6. 设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是()A.m-n B.m-n-1 C.n+1 D.条件不足,无法确定【南京理工大学2000 一、17(1.5分)】7. 树是结点的有限集合,它( (1))根结点,记为T。
其余结点分成为m(m>0)个((2))的集合T1,T2,…,Tm,每个集合又都是树,此时结点T称为Ti的父结点,Ti称为T的子结点(1≤i≤m)。
数据结构第四章串习题及答案
习题四串一、单项选择题1.下面关于串的的叙述中,哪一个是不正确的?()A.串是字符的有限序列 B.空串是由空格构成的串C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储2.串是一种特殊的线性表,其特殊性体现在()。
A.可以顺序存储 B.数据元素是一个字符C.可以链接存储 D.数据元素可以是多个字符3.串的长度是指()A.串中所含不同字母的个数 B.串中所含字符的个数C.串中所含不同字符的个数 D.串中所含非空格字符的个数4.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为()A.求子串 B.联接 C.匹配 D.求串长5.若串S=“softwa re”,其子串的个数是()。
A.8 B.37 C.36 D.9二、填空题1.含零个字符的串称为______串。
任何串中所含______的个数称为该串的长度。
2.空格串是指__ __,其长度等于__ __。
3.当且仅当两个串的______相等并且各个对应位置上的字符都______时,这两个串相等。
一个串中任意个连续字符组成的序列称为该串的______串,该串称为它所有子串的______串。
4.INDEX(‘DATAST RUCTU RE’,‘STR’)=________。
5.模式串P=‘abaabc ac’的next函数值序列为________。
6.下列程序判断字符串s是否对称,对称则返回1,否则返回0;如 f("abba")返回1,f("abab")返回0;int f((1)__ ______){int i=0,j=0;while(s[j])(2)___ _____;for(j--; i<j && s[i]==s[j]; i++,j--);return((3)___ ____)}7.下列算法实现求采用顺序结构存储的串s和串t的一个最长公共子串。
数据结构第六章图练习题及答案详细解析(精华版)
数据结构第六章图练习题及答案详细解析(精华版)第一篇:数据结构第六章图练习题及答案详细解析(精华版) 图1.填空题⑴ 设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。
【解答】0,n(n-1)/2,0,n(n-1)【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。
⑵ 任何连通图的连通分量只有一个,即是()。
【解答】其自身⑶ 图的存储结构主要有两种,分别是()和()。
【解答】邻接矩阵,邻接表【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。
⑷ 已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。
【解答】O(n+e)【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。
⑸ 已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。
【解答】求第j列的所有元素之和⑹ 有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。
【解答】出度⑺ 图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。
【解答】前序,栈,层序,队列⑻ 对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal算法求最小生成树的时间复杂度为()。
【解答】O(n2),O(elog2e)【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。
⑼ 如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。
【解答】回路⑽ 在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk的相对次序为()。
数据结构练习题
后, rear 的值为 , front 的值 为 ,当前队列的 长 度 为 。 14.设循环队列的容量为 40(序号从 0 到 39), 现经过一系列的入队和出队运算后, 有: ① front=11,rear=19; ② front=19,rear=11; 问在这两种情况下,循环队列中各有元素多少个? 15.写出下列程序段的输出结果(队列中的元素类型 QElem Type 为 char)。 void main( ){ Queue Q; Init Queue (Q); Char x=’e’; y=’c’; EnQueue (Q,’h’); EnQueue (Q,’r’); EnQueue (Q, y); DeQueue (Q,x); EnQueue (Q,x); DeQueue (Q,x); EnQueue (Q,’a’); while(!QueueEmpty(Q)){ DeQueue (Q,y); printf(y); }; printf(x); } 16.简述以下算法的功能(栈和队列的元素类型均为 int) void algo3(Queue &Q){ Stack S; int d; InitStack(S); while(!QueueEmpty(Q)){ DeQueue (Q,d); Push(S,d); }; while(!StackEmpty(S)){ Pop(S,d); EnQueue (Q,d); } }
第一章 绪论
1.数据结构是研究数据的( )以及它们之间的相互关系。 A.物理结构,逻辑结构 B.理想结构,抽象结构 C.理想结构,物理结构 D.抽象结构,逻辑结构 2.从逻辑上可以把数据结构分为( )两大类。 A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 3.以下不属于算法要素的是( ) A. 有穷性 B. 可行性 C. 可读性 D. 输入 4.算法的时间复杂度与( )有关。 A.问题规模 B.计算机硬件性能 C.编译程序质 D.程序设计语言 2 5.某算法的时间复杂度为 O(n ),表明该算法的( ) 2 A.问题规模是 n B.执行时间等于 n2 C.执行时间与 n2 成正比 D.问题规模与 n2 成正比 6.假设某算法语句总的执行次数为 T(n)=2n³ +n² ,那么该算法的时间复杂性量级为 ( ) A.O(2) B.O(n³ ) C.O(n² ) D.O(1) 7.设 n 为正整数,下面程序段中标号为①的语句频度为 。 int i = 1; k = 0; while ( i <= n-1 ){ k += 10*i; ① i++; } 8.程序段 for( i=0; i<n; i++ ) for( j=0; j<i; j++ ) k++; 中,语句 k++的执行次数为 。 9.在下面的程序段中,对 x 的赋值语句的渐进时间复杂度为 。 for(k=1;k<=n;k++) for(j=1;j<=n;j++) x=x+1; 10.下面程序段的时间复杂度为 。 void fun(int n) { int y=1; while (y <=n) y=2*y; }
数据结构习题(包含全部答案解析)
数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。
A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。
A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。
A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。
A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。
A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。
A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。
A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。
(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。
数据结构第6章习题
第6章习题一、填空1.结点数为7的二叉树的高度最矮是,最高是。
2.给定二叉树的结点数,要使树高为最大,那么该树应该是形状。
3.给定二叉树的结点数,要使树高为最矮,那么该树应该是形状。
4.如果一棵满二叉树的深度为6,那么它共有个结点,有个叶结点。
5.有15个结点的二叉树,最少有个叶结点,最多有个叶结点。
6.由n个带权值的叶结点生成的哈夫曼树,最终共有个结点。
7.将一棵完全二叉树按层次进行编号。
那么,对编号为i的结点,如果有左孩子,则左孩子的编号应该是;如果有右孩子,则右孩子的编号应该是。
8.若二叉树共有n个结点,采用二叉链表存储结构。
那么在所有存储结点里,一共会有个指针域,其中有个指针域是空的。
9.深度为5的二叉树,至多有个结点。
10.在二叉树中,有一个结点具有左、右两个孩子。
那么在中序遍历序列里,它的右孩子一定排在它的边。
二、选择1.在所给的4棵二叉树中,不是完全二叉树。
2.把一棵深度为3的左单支二叉树改造成完全二叉树时,要增添个空结点。
A.10 B.8 C.6 D.43.设有一棵5个结点的二叉树,其先序遍历序列为:A-B-C-D-E,中序遍历序列为:B-A-D-C-E,那么它的后序遍历序列为。
A.A-B-D-E-C B.B-D-E-C-AC.D-E-C-A-B D.A-B-C-D-E4.将一棵有50个结点的完全二叉树按层编号,那么编号为25的结点是。
A.无左、右孩子B.有左孩子,无右孩子C.有右孩子,无左孩子D.有左、有孩子5.深度为6的二叉树,最多可以有个结点。
A.63 B.64 C.127 D.1286.在一棵非空二叉树的中序遍历序列里,根结点的右边结点。
A.只有左子树上的部分B.只有左子树上的所有C.只有右子树上的部分D.只有右子树上的所有7.在任何一棵二叉树的各种遍历序列中,叶结点的相对次序是。
A.不发生变化B.发生变化C.不能确定D.以上都不对8.权值为1、2、6、8的四个结点,所构造的哈夫曼树的带权路径长度是。
数据结构习题
1.数据结构是研究数据的( C )以及它们之间的相互关系。
A)存储结构,物理结构 B)理想结构,抽象结构 C)物理结构,逻辑结构 D)抽象结构,逻辑结构2.在数据结构中,与所使用的计算机无关的是数据的( C )结构。
A)存储 B)物理 C)逻辑 D)物理与存储3.数据结构课程主要研究以下三方面的内容,它们是(D)。
A)数据、数据元素、数据类型B)数据元素、数据类型、算法实现 C)数据元素、数据的逻辑结构、数据的存储结构D)数据的逻辑结构、数据的存储结构、数据的运算4.在以下的复杂度量级中,量级最低的是(B)。
A) O(n) B) O(log2n) C) O(nlog2n) D) O(n2)5.在下列叙述中,正确的是(C)。
A)数据的逻辑结构要考虑数据元素本身的内容 B)不同类型的数据元素可以归类到同一的逻辑结构中 C)数据元素之间的关联关系在数据的逻辑结构中体现D)数据元素是数据不可分割的最小标识单位6.计算机算法必须具备输入、输出和(B)等五个特性。
A)可行性、可移植性和可扩充性 B)可行性、确定性和有穷性 C)确定性、稳定性和有穷性 D)易读性、稳定性和安全性7.算法分析的目的是(D)。
A)找出数据结构的合理性 B)研究算法中的输入/输出关系C)分析算法的易读性 D)分析算法的效率以求改进8.设 n>=10,下面程序段的时间复杂度是(D)。
for(i=10; i<n; i++){ j=k=0;while(j+k<=i)if (j>k) k++;else j++;}A) O (log2n) B) O(n) C) O(nlog2n) D) O(n2)9.计算机算法是指( D )A)计算方法 B)排序方法 C)调度方法 D)解决问题的有限运算序列10.数据的定义取决于数据的逻辑结构,而数据的实现取决于数据的物理结构(A)。
A)正确 B) 不正确11.下面说法错误的是(AD )A)算法原地工作的含义是指不需要任何额外的辅助空间B)在相同的规模 n 下,复杂度 O(n)的算法在时间上总是优于复杂度 O(2n)的算法C)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界D)同一个算法,实现语言的级别越高,执行效率就越低1. 数据元素是数据的最小单位。
《数据结构》第四章习题参考答案
《数据结构》第四章习题一、判断题(在正确说法的题后括号中打“√”,错误说法的题后括号中打“×”)1、KMP算法的特点是在模式匹配时指示主串的指针不会变小。
( √)2、串是一种数据对象和操作都特殊的线性表。
( √)3、只包含空白字符的串称为空串(空白串)。
( ×)4、稀疏矩阵压缩存储后,必会(不会)失去随机存取功能。
( ×)5、使用三元组表示稀疏矩阵的非零元素能节省存储空间。
( √)6、插入与删除操作是数据结构中最基本的两种操作,因此这两种操作在数组中也经常使用。
(×)7、若采用三元组表存储稀疏矩阵,只要把每个元素的行下标和列下标互换(错的),就完成了对该矩阵的转置运算。
(×)二、单项选择题1.下面关于串的的叙述中,哪一个是不正确的?( B )A.串是字符的有限序列B.空串是由空格构成的串(空串是长度为零的串)C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储2.有串S1=’ABCDEFG’,S2 = ’PQRST’,假设函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,len(s)返回中s的长度,则con(subs(s1,2,len(s2)),subs(s1,len(s2),2))的结果串是( D )。
A.BCDEF B.BCDEFG C.BCPQRST D.CDEFGFG3、串的长度是指( B )A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数三、填空题1、串是一种特殊的线性表,其特殊性表现在_数据元素为字符,操作集也不同__;串的两种最基本的存储方式是_顺序存储_、__ 链式存储_;两个串相等的充分必要条件是__两串的长度相等且两串中对应位置的字符也相等__。
2、设正文串长度为n,模式串长度为m,则串匹配的KMP算法的时间复杂度为_O(m+n)__。
数据结构 所有章节测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学
数据结构章节测验数据结构第一章测验一、单选题 (共100.00分)1. 在数据结构概念中,数据的基本单位是()A. 数据段B. 数据项C. 数据表D. 数据元素正确答案:D2. 在数据结构概念中,结构是描述()A. 数据项的类型B. 数据元素之间的关系C. 数据成员的先后顺序D. 数据对象的取值范围正确答案:B3. 在算法设计中,要求算法便于理解和修改是属于算法要求的()A. 正确性B. 可读性C. 健壮性D. 效率高正确答案:B4. 抽象数据类型ADT通过三方面描述,包括数据对象、数据操作和()A. 数据范围B. 数据判断C. 数据关系D. 数据来源正确答案:C5. 以下关于算法的描述,哪个是正确的()A. 算法可以没有输入B. 算法可以包含无限个执行步骤C. 算法可以没有输出D. 算法的每个步骤允许带有歧义的正确答案:A6. 在算法设计中,要求算法满足具体问题的需求是属于算法要求的()A. 正确性B. 可读性C. 健壮性D. 效率高正确答案:A7. 抽象数据类型ADT通过三方面描述,包括数据关系、数据操作和()A. 数据对象B. 数据来源C. 数据范围D. 数据判断正确答案:A8. 以下关于数据结构的描述,哪一个是正确的()A. 数据原子是数据的最小独立单位B. 数据元素是数据的最小独立单位C. 一个数据项可以包含若干个数据元素D. 不能被计算机程序识别和处理的信息集合,不能称为数据正确答案:D9. 设n为问题规模,以下程序的时间复杂度为()for (i=1; i<=10000; i++) for (j=1; j<=n; j++) a = a + 1;A. O(1)B. O(n)C. O(10000n)D. O(n2)正确答案:B10. 设n为问题规模,以下程序的时间复杂度为() for (i=1; i< POW(2, n); i++) //POW(x, y)函数表示x的y 次幂a = a+100;A. O(n)B. O(2n)C. O(n!)D. O(2n)正确答案:D数据结构第二章测验一、单选题 (共100.00分)1. 以下结构中,哪一个是属于逻辑结构()A. 线性表B. 顺序表C. 单链表D. 循环链表正确答案:A2. 已知顺序表包含1000个数据,现在第88号位置插入新的数据,需要移动的数据个数为()A. 88B. 87C. 912D. 913正确答案:D3. 若线性表最常用的操作是存取第i个元素及其后继的值,则最节省操作时间的存储结构是()A. 单链表B. 双链表C. 单循环链表D. 顺序表正确答案:D4. 以下结构中,哪一个是属于物理结构()A. 线性表B. 栈C. 单链表D. 队列正确答案:C5. 已知顺序表包含100个数据,现在要删除第99号位置的数据,需要移动的数据个数为()A. 99B. 100C. 1D. 2正确答案:C6. 已知指针p指向单链表L的某个结点,判断p指向的结点是尾结点的条件是()A. if (p->next>p)B. if (p->next==NULL)C. if (p->nextD. if (p->data==0)正确答案:B7. 以下描述哪个是正确的()A. 线性表的数据元素的存储位置一定是连续的B. 顺序表的数据元素的存储位置一定是连续的C. 链表的数据元素的存储位置一定不是连续的D. 线性表的数据元素的存储位置一定不是连续的正确答案:B8. 已知顺序表包含100个数据,先在第15号位置插入1个新数据,接着删除第3号位置的数据,需要移动的数据总个数为()A. 18B. 84C. 184D. 188正确答案:C9. 设某单链表包含10个结点,已知指针p指向第3个结点,指针q指向第4个结点,删除第4个结点的语句为()A. p->next = q->next; free(q);B. q->next = p; free(p);C. p = q->next; free(p);D. q = p->next; free(q);正确答案:A10. 设某单链表包含10个结点,已知指针s指向一个新结点,指针p指向第4个结点,现在第4个结点之后插入这个新结点的两个语句为()A. p->next = s; s->next = p->next;B. s->next = p->next; p->next = s;C. p->next = s->next; s->next = p;D. s->next = p; p->next = s->next;正确答案:B数据结构第三章测验一、单选题 (共100.00分)1. 以下结构中,哪一个是属于逻辑结构()A. 顺序栈B. 链栈C. 队列D. 循环队列正确答案:C2. 已知栈S为空,数据1、2、3、4依次逐个进入栈S,则栈顶数据为()A. 1B. 2C. 3D. 4正确答案:D3. 已知队列为空,数据1、2、3、4依次逐个进入队列,则出队的数据顺序为()A. 1234B. 4321C. 1324D. 2413正确答案:A4. 栈的最大特点是()A. 先进先出B. 后进先出C. 无限递归D. 有限递归正确答案:B5. 队列的最大特点是()A. 先进先出B. 后进先出C. 无限递归D. 有限递归正确答案:A6. 已知栈包含10元素,其中存放在栈底是第1号元素,则第10号元素可以通过()进行访问A. 栈底B. 栈中C. 栈尾D. 栈顶正确答案:D7. 以下描述正确的是()A. 顺序栈可以直接访问栈内任意位置的元素,而链栈不可以B. 链栈可以直接访问栈内任意位置的元素,而顺序栈不可以C. 通过栈可以实现程序的递归算法D. 通过队列可以实现程序的递归算法正确答案:C8. 以下结构中,哪一个是属于物理结构()A. 栈B. 队列C. 链队列D. 线性表正确答案:C9. 使用长度为10的数组实现循环队列,则该队列最多存储数据个数为()A. 1B. 9C. 11.D.5正确答案:B10. 在队列中,允许插入的一端称为()A. 队头B. 队中C. 队指针D. 队尾正确答案:D数据结构第四章测验一、单选题 (共100.00分)1. 以下结构中,哪一个是属于逻辑结构()A. 顺序表B. 链栈C. 循环队列D. 串正确答案:D2. 以下哪一种是串在计算机中的常见表示方式()A. 定长顺序B. 堆分配C. 块链D. 前三种都是正确答案:D3. 在数据结构中,串可以等同于()的处理A. 整数串B. 浮点数串C. 字符串D. 多种类型的数组正确答案:C4. 以下哪一种是串匹配的常用算法()A. 普里姆算法B. 克鲁斯卡尔算法C. KMP算法D. 关键路径算法正确答案:C5. 已知主串为abcbcaddabc,模式串为cad,假设串位置从1开始,则串匹配位置是()A. 3B. 5C. 7D. 不存在正确答案:B6. 已知模式串为abaab,则next数组为()A. 1122B. 22312C. 1212D. 1112正确答案:A7. 已知串S的内容为1+2+3,以下描述哪一个是正确的()A. 串S的长度是6B. 串S的运算结果是6C. 整数1是串S的子串D. 符号+是串S的子串正确答案:D8. 以下描述哪一个是正确的()A. 串是字符有限序列B. 串是整数、浮点数、字符等多种数据的有限序列C. 只包含空格的串称为空串D. 串只能使用顺序表存储正确答案:A9. 串的长度是指()A. 串中包含不同字母的个数B. 串中所含字符的个数C. 串中包含不同字符的个数D. 串中包含非空格的字符的个数正确答案:B10. 串函数Sub(S, x, y)表示在串S中,从x位置开始,取出y个字符,串位置从1开始计算。
数据结构练习题2012信管
2、 设有两个串 p 和 q,求 q 在 p 中首次出现的位置的运算称作:B A.连接 B.模式匹配 C.求子串 D.求串长
3、设 s =’I AM A STUDENT’, t =’GOOD’, q=’WORKER’。求: 答: StrLength(s) =14 StrLength(t) =4 SubString(s, 8, 7)= ‘STUDENT’ 第五章 1、一个二维数组 A,行下标的范围是 1 到 6,列下标的范围是 0 到 7,每个数
3
答:入队(尾部插入) :rear->next=S; rear=S; 出队(头部删除) : front->next=p->next; 8、什么叫“假溢出” ?如何解决? 答:在顺序队中,当尾指针已经到了数组的上界,不能再有入队操作,但 其实数组中还有空位置,这就叫“假溢出”。解决假溢出的途径———采 用循环队列。 9、数组Q[n]用来表示一个循环队列,f 为当前队列头元素的前一位置,r 为 队尾元素的位置。假定队列中元素的个数小于 n,计算队列中元素的公式为: (A) r-f (B) (n+f-r)% n (C)n+r-f (D) (n+r-f)% n 4 种公式哪种合理? 当 r ≥f 时(A)合理;当 r < f 时(C)合理;综合 2 种情况,以(D) 的表达最为合理 10、在一个循环队列中,若约定队首指针指向队首元素的前一个位置。那么, 从循环队列中删除一个元素时,其操作是 先 移动队首指针 ,后 取出元 素 。 11、线性表、栈与队的异同点 答:相同点:逻辑结构相同,都是线性的;都可以用顺序存储或链表存储; 栈和队列是两种特殊的线性表,即受限的线性表(只是对插入、删除运算 加以限制) 。 不同点: ① 运算规则不同,线性表为随机存取,而栈是只允许在一端进行插入 和删除运算,因而是后进先出表 LIFO;队列是只允许在一端进行插入、另 一端进行删除运算,因而是先进先出表 FIFO。 ② 用途不同,线性表比较通用;堆栈用于函数调用、递归和简化设计 等;队列用于离散事件模拟、多道作业处理和简化设计等。 第四章 1、串是一种特殊的线性表,其特殊性体现在: B (A)可以顺序存储 (C)可以链式存储 (B)数据元素是一个字符 (D)数据元素可以是多个字符
数据结构各章作业题目
第一章作业一、选择题1.被计算机加工的数据元素不是孤立的,它们彼此之间一般存在某种关系,通常把数据元素之间的这种关系称为( ).A。
规则B。
结构 C. 集合 D. 运算2.在Data_Structure=(D,S)中,D是()的有限集合。
A。
数据元素 B. 算法C。
数据操作D。
数据对象3.计算机所处理的数据一般具有某种关系,这是指()之间存在的某种关系。
A。
数据与数据B。
数据元素与数据元素C。
元素内数据项与数据项D。
数据文件内记录与记录4.顺序存储表示中数据元素之间的逻辑关系是由( )表示的.A。
指针B。
逻辑顺序 C. 存储位置D。
问题上下文5.链接存储表示中数据元素之间的逻辑关系是由( )表示的。
A。
指针B。
逻辑顺序C。
存储位置 D. 问题上下文6.从逻辑上可将数据结构分为()。
A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C。
内部结构和外部结构D。
线性结构和非线性结构7.以下选项属于线性结构的是( )。
A。
广义表 B. 二叉树C。
串 D. 稀疏数组8.以下选项属于非线性结构的是().A。
广义表B。
队列 C. 优先队列D。
栈9.以下属于逻辑结构的是( )A. 顺序表B。
散列表 C. 有序表 D. 单链表10.一个完整的算法应该具有( )等特性。
A. 可执行性、可修改性和可维护性B. 可行性、确定性和有穷性C。
确定性、有穷性和可靠性D。
正确性、可读性和有效性11.若一个问题既可以用迭代方法也可以用递归方法求解,则( )的方法具有更高的时空效率.A. 迭代B。
递归C。
先递归后迭代D。
先迭代后递归12.一个递归算法必须包括( )A。
递归部分 B. 终止条件和递归部分C。
迭代部分 D. 终止条件和迭代部分13.算法的时间复杂度与()有关。
A. 问题规模B. 源程序长度C. 计算机硬件运行速度D. 编译后执行程序的质量二、指出下列各算法的功能并求出其时间复杂度。
(1)int Prime(int n){int i=2,x=(int)sqrt(n); //sqrt(n)为求n的平方根while(i<=x){if(n%i==0)break;i++;}if(i〉x)return 1;else return 0;}(2)int sum1(int n){int p=1,s=0;for(int i=1;i<=n;i++){p*=i;s+=p;}return s;}(3)int sum2(int n){int s=0;for(int i=1;i〈=n;i++){int p=1;for(int j=1;i〈=i;j++) p*=j;s+=p;}return s;}(4)int fun(int n){int i=1,s=1;while(s<n) s+=++i;return i;}(5)void mtable(int n){for(int i=1;i〈=n;i++){for(int j=i;j<=n;j++)cout<〈i〈<"*"<<j〈<"=”〈〈setw(2)<〈i*j<<" ”;cout<<endl;}}第二章作业 一、选择题1. 在线性表中的每一个表元素都是不可再分的( )A 。
数据结构练习题1-6章
习题练习第一章1. 算法的计算量的大小称为计算的()。
A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于()A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(1),它必须具备(2)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性4.一个算法应该是()。
A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C.5、下面属于逻辑结构的是()A 顺序表B哈希表 C 有序表D 单链表6、某算法的时间复杂度为O(n2),表明该算法的()A 问题规模是n2 B执行时间等于n2C 执行时间与n2成正比D问题规模与n2成正比7、下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.从逻辑上可以把数据结构分为()两大类。
A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构9.以下与数据的存储结构无关的术语是()。
A.循环队列 B. 链表 C. 哈希表 D. 栈10.以下数据结构中,哪一个是线性结构()?A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串11.以下那一个术语与数据的存储结构无关?()A.栈 B. 哈希表 C. 线索树 D. 双向链表12.在下面的程序段中,对x的赋值语句的频度为()FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A. O(2n) B.O(n) C.O(n2) D.O(log2n)14.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队 D.栈15. 下列数据中,()是非线性数据结构。
数据结构第六章作业及答案
3、试分别画出具有3个结点的树和3个结点的二叉树 的所有不同形态。 4、对右图所示的二叉树求出 A 以下的遍历序列: B C (1)先序序列 D E F (2)中序序列 (3)后序序列 G H 5、假设一棵二叉树的先序序列为 EBADCFHGIKJ 和 中序序列为 ABCDEFGHIJK。请画出该树,并给 出后序序列。 6、假设一棵二叉树的中序序列为 DCBGEAHFIJK和 后序序列为 DCEGBFHKJIA 。请画出该树,并给 出先序序列。
2
7、将以下森林转换成二叉树。
A
B
C
D
E F G J I
H
L K
3
8、画出和下列二叉树相应的森林。
(a)
A
(b) (c)
A B C
(d)
A B C B C D B
(e)
A
C E F
A
G
J
H
K M
I
4
第六章作业解答 1、(1) M、N、D、L、F、J、K是叶子结点
(2) C是结点G的双亲 (3) A、C是结点G的祖先 (4) I、M、N是结点E的子孙 (5) 树的深度是5 2、(1)二叉树与树的区别: 二叉树的一个结点至多有2个子树,树则不然; 二叉树的一个结点有左、右之分,而树则没有此要求 (2)一棵度为2的树有2个分支,没有左、右之分, 一棵二叉树也可以有2个分支,但有左、右之分, 且左、右不能交换。 3、具有3个结点的树的形态为:
C D
E
F
K
7
7、解:转换后的二叉树为:
A B C D E F G J K I L H
8
8、解:转换后的森林为: (a) (b) (c)
A A B A B C
数据结构作业题目
一、第一次作业
①写一个函数find,实现从数组a[n]查找元素x,返回x在数组中的序号,如果找不到则返回-1。
②当a[n]递增有序时,有没有高效的算法?
③以Niklus Wirth的观点,程序是什么?
④算法有什么特性?
⑤好算法应该满足哪些标准?
⑥数据结构主要在哪些层面上讨论问题?
⑦按增长率由小至大的顺序排列下列各函数(严蔚敏题集1.10)
⑧试写一算法,自大至小依次输出顺序读入的三个整数X,Y和Z 的值(严蔚敏题集1.16)
二、第二次作业
1)题集2.2(严蔚敏)
2)题集2.10(严蔚敏)
3)题集2.12(严蔚敏)
4)题集2.7(严蔚敏)
5)题集2.15(严蔚敏)
三、第三次作业
第二章题集1、9、10(于津、陈银冬)
四、第四次作业
第三章题集1、2、3、4、5(于津、陈银冬)
五、第五次作业
①第四章题集2、5(于津、陈银冬)
②实现以下C库函数:
(1)strlen(cs)
(2)strcpy(s, ct)
(3)strcmp(cs, ct)
③完成对称矩阵、三角矩阵、对角矩阵在压缩存储下的输入输出算法
④第五章题集1、2、3(于津、陈银冬)
六、第六次作业
第六章题集1、2、10(于津、陈银冬)
七、第七次作业
第六章题集3、8、12、13(于津、陈银冬)
八、第八次作业
第六章题集6、7、9、15(于津、陈银冬)
九、第九次作业
第七章题集1、7(另加上“十字链表”存储)(于津、陈银冬)。
数据结构第六章习题
数据结构第六章习题
一、选择题
1.求最小生成树的Kruskal算法是一种( )
A.动态规划算法
B.广度优先算法
C.深度优先算法
D.贪心算法
2.在求最短路径的Dijkstra算法中,用来标记顶点是否已经找到最短路径的标记位为( )
A. mark
B. tag
C. flag
D. sign
3.在Dijkstra算法中,初始只将( )加入集合S
A.顶点v
B.顶点v的邻接点
C.顶点v及其邻接点
D.无
4.广义表的抽象数据类型中,判别表示空表的标志位为()
A. head
B. node
C. tail
D. atom
5.静态链表所有分量的数据域统一为()
A. link
B. head
C. data
D. tail
二、填空题
1.在无向图中,任意两点之间只有一条边,则此图称为。
2.求最小生成树的Prim算法的复杂度是。
3.在广义表的抽象数据类型的表示中,一个表示空表的标志位可由一个来表示。
4.串的匹配过程中,用来表示字符串中其中一段字符串的模式串,
用来表示字符串中其它段字符串的模式串。
5.使用栈来求解汉诺塔问题的要点是:先将n-1个盘子从x移到y 上,再将最底下的大盘子从x移到z上,最后将y上n-1个盘子移到z上,如此循环。
三、问答题
1.请介绍二叉树的数据结构及其特点?
二叉树是树结构的一种,其特点是在树中任何一个非叶子节点都有不
超过两个子节点。
数据结构第四章参考答案
习题41. 填空题(1)一般来说,数组不执行(___________)和(___________)操作,所以通常采用(___________)方法来存储数组。
通常有两种存储方式:(___________)和(___________)。
答案:删除 插入 顺序存储 行优先存储 列优先存储(2)设8行8列的二维数组起始元素为A[0][0],按行优先存储到起始元素下标为0的一维数组B 中,则元素B[23]在原二维数组中为(___________)。
若该二维数组为上三角矩阵,按行优先压缩存储上三角元素到起始元素下标为0的一维数组C 中,则元素C[23]即为原矩阵中的(___________)元素。
答案:A[2][7] A[3][5](3)设二维数组A 为6行8列,按行优先存储,每个元素占6字节,存储器按字节编址。
已知A 的起始存储地址为1000H ,数组A 占用的存储空间大小为(___________)字节,数组A 的最后一个元素的下标为(___________),该元素的第一个字节地址为(___________)H ,元素A[1][4]的第一个字节的地址为(___________)H 。
(提示:下标从0开始计) 答案:288 A[5][7] 111AH 1048H(4)设C++中存储三维数组A mnp ,则第一个元素为a 000,若按行优先存储,则a ijk 前面共有(___________)个元素;若按列优先存储,则a ijk 前面共有(___________)个元素。
答案:inp+jp+k i+mj+mnk(5)常见的稀疏矩阵压缩方法有:(___________)和(___________)。
答案:三元组表 十字链表 (6)广义表((a ),((b ,c ),d ),(e ))的长度为(___________),表头为(___________),表尾为(___________)。
答案:3 (a ) (((b ,c ),d ),(e )) (7)设广义表LS =((a ),((b ,c ),d ),(e )),若用取表头操作GetHead ()和取表尾操作GetTail ()进行组合操作,则取出元素b 的运算为(___________)。
数据结构复习题参考答案
数据结构总复习第一部分课后习题第一章课后习题P16 1、2、5、6、9第三章课后习题P66 2、3第四章课后习题P88 1第五章课后习题P102 1、2第六章课后习题P134-135 1、3、16、18完成P137 实验二构造哈夫曼编码第七章课后习题P177 1、2、4、8、10第二部分综合习题一、单项选择题1.如果在数据结构中每个数据元素只可能有一个直接前驱,但可以有多个直接后继,则该结构是(C )A. 栈B. 队列C. 树D. 图2.下面程序段的时间复杂度为(B )for (i=0; i<m; i++)for (j=0; j<n; j++)A[i][j]=i*j;A. O (m2)B. O (n2)C. O (m*n)D. O (m+n)3.在头指针为head的非空单循环链表中,指针p指向尾结点,下列关系成立的是( A )A. p->next==headB. p->next->next==headC. p->next==NULLD. p==head4.若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列是( D )A. SXSSXXXXB. SXXSXSSXC. SXSXXSSXD. SSSXXSXX5.两个字符串相等的条件是(D )A. 串的长度相等B. 含有相同的字符集C. 都是非空串D. 串的长度相等且对应的字符相同6.已知一棵含50个结点的二叉树中只有一个叶子结点,则该树中度为1的结点个数为( D )A. 0B. 1C. 48D. 497.算法分析的目的是:(C )(A)找出数据结构的合理性(B)研究算法中输入和输出的关系(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性8.用链表表示线性表的优点是:( C )(A)便于随机存取(B)花费的存储空间比顺序表少(C)便于插入和删除(D)数据元素的物理顺序与逻辑顺序相同9.在数组表示的循环队列中,front、rear分别为队列的头、尾指针,maxsize为数组的最大长度,队满的条件是:( D )(A)front=rear (B)rear=maxsize(C)rear=front (D)(rear+1)%maxsize=front10.若已知一棵二叉树先序序列为ABCDEFG,中序序列为CBDAEGF,则其后序序列为:( A )(A)CDBGFEA (B)CDBFGEA(C)CDBAGFE (D)BCDAGFE11.执行下列程序段,执行S的次数(S这段程序的时间复杂度)是:(D )for(int i=1;i<=n;i++)for(int j=1;j<=i;j++)S;(A)n2 (B)n2/2 (C)n(n+1) (D)n(n+1)/212.以下数据结构中哪一个是非线性结构的是:( D )(A)队列(B)栈(C)线性表(D)图13.设有6个结点的无向图,该图至少有多少条边才能确保是一个连通图:(A )(A)5 (B)6 (C)7 (D)814.树形结构数据元素之间的关系是:( C )(A)一对一关系(B)多对多关系(C)一对多关系(D)多对一关系15.一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是:( C )(A)edcba (B)decba (C)dceab (D)abcde16.静态查找和动态查找的根本区别在于:(B )(A)它们的逻辑结构不一样(B)施加在其上的操作不同(C)所包含的数据元素的类型不一样(D)存储的实现不一样17.关键路径是AOE网中:(A )(A)从源点到终点的最长路径(B)从源点到终点的最短路径(C)最长的回路(D)最短的回路18.采用折半查找方法进行查找,数据文件为,且限于;(A )(A)有序表顺序存储结构(B)有序表链式存储结构(C)随机表顺序存储结构(D)随机表链式存储结构19.一个高度为h的完全二叉树共有n个结点,其中m个叶子结点,则下列式子成立的是( D )(A)n=h+m (B)h+m=2n (C)m=h-1 (D)n=2m-120.下列说法中不正确的是:(C )(A)数组时一种线性结构(B)数组是一种定长的线性结构(C)除了插入和删除操作外,数组的基本操作还有存取、修改、检索和排序等(D)数组的基本操作有存取、修改、检索和排序等,没有插入与删除操作21.设无向图G有n个顶点e条边,则该无向图中所有顶点的度之和为:( D )(A)n (B)e (C)2n (D)2e22.对下面的无向图进行广度优先搜索后所得到的顶点访问序列,正确的是:(A )(A)ABDEFC (B)ABFEDC (C)ADCBEF (D)ADCBFE23.若某线性表中最常用的操作是取第i 个元素和找第i个元素的前趋元素,则采用( D )存储方式最节省时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构第四到第六章的练习题
一、单项选择题
1、设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为_______。
A、2h
B、2h-1
C、2h+1
D、h+1
2、已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是_______。
A、acbed
B、decab
C、deabc
D、cedba
3、如果T2是由有序树T转换而来的二叉树,那么T中结点的后序就是T2中结点的_______。
A、前序
B、中序
C、后序
D、层次序
4、按照二叉树的定义,具有3个结点的二叉树有_______种。
A、3
B、4
C、5
D、6
5、对一个满二叉树,m个树叶,n个结点,深度为h,则_______。
A、n=h+m
B、h+m=2n
C、m=h-1
D、n=2m-1
二、填空题
1、已知完全二叉树的第7层有8个结点,则其叶子结点数是_______。
2、在有n个叶子结点的哈夫曼树中,总结点数是_______。
3、一棵二叉树的第i(i>=1)层最多有_______个结点;一棵有n(n>0)个结点的满二叉树共有_______个叶子和_______个非终端结点。
三、综合设计题
1、指出树和二叉树的主要差别,深度为k的二叉树,以顺序结构存储,最坏情况下浪费的空间为多少?并以k=4为例,画出最坏情况下的二叉树结构。
2、画出以数据集{4,5,6,7,10,12,18}为结点权值所构造的Huffman树,其带权路径长度WPL为多少?
四、算法设计
1、二叉树采用链接存储结构,试设计一个按层次顺序(同一层次自左至右)遍历二叉树的算法(非递归算法)
2、二叉树采用链接存储结构,设计一个算法计算一棵给定二叉树的所有结点数。
提示:递归模型如下:
f(b)=0 若b=NULL
f(b)=1 若b->left=NULL且b->right=NULL
f(b)=f(b->left)+f ( b->right)+1 其他
树和二叉树单元练习
一、判断题(下列各题,正确的请在后面的括号内打√;错误的打Χ)
_____1.树结构中每个结点最多只有一个直接前驱,但是可以有多个直接后继。
_____2.满二叉树一定是完全二叉树。
_____3.在中序线索二叉树中,右线索若不为空,则一定指向其双亲。
_____4.二叉树的前序遍历中,任意一个结点均处于其孩子结点的前面。
_____5.由二叉树的前序遍历序列和中序遍历序列,可以推导出后序遍历的序列。
_____6.在完全二叉树中,若一个结点没有左孩子,则它必然是叶子结点。
_____7.在哈夫曼编码中,当两个字符出现的频率相同,其编码也相同,对于这种情况应该做特殊处理。
_____8.含多于两棵树的森林转换的二叉树,其根结点一定无右孩子。
_____9.具有n个叶子结点的哈夫曼树共有2n-1个结点。
_____10.一棵完全二叉树中序遍历序列的最后一个结点,必定是该二叉树前序遍历的最后一个结点。
二、填空题
1.在树中,一个结点所拥有的子树数称为该结点的(1)__________,度为零的结点称为(2)__________结点,树中结点的最大层次称为树的(3)__________。
2.对于二叉树来说,第i层上至多有(4)__________个结点,深度为h的二叉树至多有(5)__________个结点。
3.有20个结点的完全二叉树,编号为10的结点的父结点的编号是(6)__________。
4.某二叉树的中序遍历序列为:ABDECFGH,中序遍历序列为:DEBAFCHG,则二叉树的后序遍历序列为:(7)__________。
5.由树转换成二叉树时,其根结点无(8)__________。
6.三个结点可以组成(9)__________种不同形态的树。
7.采用二叉链表存储的n个结点的二叉树,一共有(10)__________个指针域。
三、选择题
1.树最适合用来表示_____。
A)有序数据元素B)无序数据元素
C)元素之间无联系的数据 D)元素之间有分支的层次关系2.前序为ABC的二叉树共有_____种。
A)2 B)3 C)4 D)5
3.A、B为一棵二叉树上的两个结点,在中序遍历时,A在B前的条件是_____。
A)A在B后方B)A是B祖先C)A在B下方D)A是B子孙
4.具有n(n>1)个结点的完全二叉树中,结点i(2i>n)的左孩子结点是_____。
A)2i B)2i+1 C)2i-1 D)不存在5.把一棵树转换为二叉树后,这棵二叉树的形态是_____。
A)唯一的B)有多种
C)有多种,但根结点都没有左孩子D)有多种,但根结点都没有右孩子6.二叉树按某种是顺序线索后,任一结点均有指向其前驱和后继的线索,这种说法_____。
A)正确 B)错误C)不确定 D)都有可能7.下列陈述正确的是_____。
A)二叉树是度为2的有序树
B)二叉树中结点只有一个孩子时无左右之分
C)二叉树中必有度为2的结点
D)二叉树中最多只有两棵子树,且有左右子树之分
8.用5个权值{3,2,4,5,1}构造的哈夫曼树的带权路径长度是_____。
A)32 B)33 C)34 D)35
9.在树结构中,若结点B有4个兄弟,A是B的父结点,则A的度为_____。
A)3 B)4 C)5 D)6
10.二叉树的叶子结点个数比度为2的结点的个数_____。
A)无关B)相等C)多一个D)少一个
四、综合题
1.已知一棵树边的集合如下,请画出此树,并回答问题。
{(L,M0,(L,N),(E,L),(B,E),(B,D),(A,B),(G,J),(G,K),(C,G),(C,F),( H,I),(C,H),(A,C)}
(1)根结点:__________ (2)叶子结点:__________
(3)G的双亲:__________ (4)G的祖先:__________
(5)G的孩子:__________ (6)E的子孙:__________
(7)E的兄弟:__________,F的兄弟:__________
(8)B的层次:__________,N的层次:__________
(9)树的深度:__________,以结点C为根的子树的深度:__________
(10)树的度:__________
2.假设用于通信的电文仅由A、B、C、D、E、F、G、H这8个字母组成,字母在电文中出现的频率分别为7、1、2、6、32、3、21、10。
试为这8个字母设计哈夫曼编码。
单元练习五图结构
一、单项选择题
1、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的_______倍。
A、1/2
B、1
C、2
D、4
2、具有4个顶点的无向完全图有_______条边。
A、6
B、12
C、16
D、20
3、具有6个顶点的无向图至少应有_______条边才能确保是一个连通图。
A、5
B、6
C、7
D、8
4、采用邻接表存储的图的深度优先遍历算法类似于二叉树的_______。
A、先序遍历
B、中序遍历
C、后序遍历
D、按层遍历
二、填空题
1、在无权图G的邻接矩阵A中,若(vi,vj)或<vi,vj>属于图G的边集合,则对应元素A[i][j]等于_______,否则等于_______。
2、已知一个图的邻接矩阵表示,计算第i个结点的入度的方法是_______。
3、在有n个结点的无向图中,其边数最多为_______。
4、有n个顶点的连通图至少有_______个结点。
三、综合设计题
1、用宽度优先搜索和深度优先搜索对下图G进行遍历(从顶点1出发),给出遍历序列。