数据结构复习习题和答案_第1页
数据结构复习习题和答案_第2页
数据结构复习习题和答案_第3页
数据结构复习习题和答案_第4页
数据结构复习习题和答案_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 绪论 一、 单项选择题1 数据结构是一门研究非数值计算的程序设计问题中计算机的以及它们之间的和操作等的学科。 A.操作对象 B计算方法 C·逻辑存储 D.数据映象 A.结构 B关系 C运算 D.算法2数据结构被形式地定义为(D,R),其中D是的有限集合,R是D上的有限集合。 A.算法 B.数据元素 C数据操作 D逻辑结构 A.操作 B.映象 C、存储 D.关系3在数据结构中,从逻辑上可以把数据结构分成( )。A.动态结构和静态结构 B紧凑结构和非紧凑结构C.线性结构和非线性结构 D内部结构和外部结构 4·算法分析的目的是,算法分析的两个主要方面是。 A. 找出数据结

2、构的合理性 B研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 A. 空间复杂性和时间复杂性 B正确性和简明性 C可读性和文档性 D数据复杂性和程序复杂性 5计算机算法指的是,它必具备输入、输出和等五个特性。 A. 计算方法 B排序方法 C. 解决问题的有限运算序列 D调度方法 A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D易读性、稳定性和安全性 6. 线性表的逻辑顺序与存储顺序总是一致的,这种说法( )。 A. 正确 B不正确 7. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址( )。 A

3、. 必须是连续的 B部分地址必须是连续的 C. 一定是不连续的 D. 连续或不连续都可以 8数据结构通常是研究数据的( )及它们之间的相互联系。 A存储和逻辑结构 B存储和抽象 C理想与抽象 D理想与逻辑 9数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为()。 A存储结构 B逻辑结构 C顺序存储结构 D链式存储结构 11非线性结构是数据元素之间存在一种()。 A一对多关系 B多对多关系 C多对一关系 D一对一关系 12非线性结构中,每个结点()。 A无直接前趋 B只有一个直接前驱和后继 C只有一个直接前趋和个数受限制的直接后继 D有个数不受限制的直接前趋和后继 13除了

4、考虑存储数据结构本身所占用的空间外,实现算法所用辅助空间的多少称为()。 A时间效率 B空间效率 C硬件效率 D软件效率 14链式存储的存储结构所占存储空间()。 A分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针 B只有一部分,存放结点值 C只有一部分,存储表示结点间关系的指针 D分两部分,一部分存放结点值,另一部分存放结点所占单元数 15设语句x十的时间是单位时间,则语句: for(il;in;i) X; 的时间复杂度为()。 AO(l) BO(n) CO(n2) DO(n3)二、 填空题 1数据元素之间的关系称为(结构),通常分为4种( 集合 )( 线性结构 )(树形结构)(

5、图状结构或网状结构)。 2在线性结构中,第一个结点(无)前驱结点,其余每个结点有且只有( 1 )个前驱结点;最后一个结点( 无 )后续结点,其余每个结点有且只有( 1 )个后续结点。 3在树形结构中,树根结点没有( 前驱)结点,其余每个结点有且只有( 1 )个前驱结点;叶子结点没有( 后继)结点,其余每个结点的后继结点可以( 多个 )。 4在图形结构中,每个结点的前驱结点数和后续结点数可以( 多个 )。 5线性结构中元素之间存在( 一对一)关系,树形结构中元素之间存在( 一对多 )关系,图形结构中元素之间存在( 多对多 )关系。 6下面程序段的时间复杂度是( O( mn ) )。 for(i0

6、;i<n;i) for(j0;jm;j) Aij=0; 7数据结构包括数据的(逻辑结构)、数据的( 存储结构 )。 8数据结构按逻辑结构可分为两大类,它们分别是(线性结构)和(非线性结构)。 9数据的存储结构分为(顺序存储结构)和(链式存储结构 )。10一个算法的效率可分为( 时间 )效率和( 空间)效率。11.数据元素是数据的(基本)单位,(数据项)是数据的最小单位。12数据对象是( 性质 )相同数据元素的集合。 三、阅读理解题 设n为正整数,利用大“O”记号,将下列程序段的执行时间表示为n的函数。 x0; for(i=l; in;i) for(j=i+1; jn; j) x+;答案:

7、n(n+1)/2 ,即O( n2 )第2章 线性表一、单项选择题:1线性表的的顺序存储结构是一种( )的存储结构,线性表的链式存储结构是一种( )的存储结构。 A·随机存取 B.顺序存取 C索引存取 D散列存取 2在以下的叙述中,正确的是( )。 A. 线性表的顺序存储结构优于链表存储结构 B二维数组是其数据元素为线性表的线性表 C栈的操作方式是先进先出 D. 队列的操作方式是先进后出 3不带头结点的单链表head为空的判定条件是( )。A. head=NULL Bheadnext=NULL Cheadnext=head Dhead!=NULL 4带头结点的单键表head为空的判定条

8、件是( )。A. head=NULL Bheadnext=NULL Cheadnext=head Dhead!=NULL 5非空的循环单链表head的尾结点(由p所指向)满足( )。 A. pnext=NULL Bp=NULL Cp->next=head D p=head 6在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行( )。 A s-nextp-next;p-nexts; B p-nexts-next;s-next=p; C q-nexts;s-nextp; D p-nexts;s-nextq; 7在单链表中,若p所指结点不是最后结点,在p之后

9、插入S所指结点,则执行( )。 A Snext=P;Pnext=s; Bs-next=p-next;p-nexts; Cs-nextp-next;ps; D p-nexts;s-nextp; 8在一个单链表中,若删除P所指结点的后继结点,则执行( )。 A p-nextp-next-next; B pp-next;p-nextp-next-next; Cpnextp-next; D ppnext-next 9从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较( )个结点。 A. n Bn2 C(nl)2 D(n十1)2 10在具有n个结点的有序单链表中插入一个新结

10、点并仍然有序的时间复杂度是( )。 A. O(l) BO(n) CO(n2) DO(nlog2n) 11用单链表方式存储的线性表,每个结点需要两个域,一个是数据域,另一个是()。 A当前结点所在地址域 B.指针域 C空指针域 D空闲域 12在具有n个结点的单链表中,实现()的操作,其算法的时间复杂度都是O(n)。 A遍历链表和求链表的第i个结点 B在地址为P的结点之后插入一个结点 C删除开始结点 D删除地址为p的结点的后继结点 13.单链表的存储密度()。 A.大于1 B.等于1 C小于1 D不能确定 14.已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为dal,则第

11、i个结点的地址为()。 A. dal(i l)*m Bdali*m C dal-i*m D da1(i+ 1)*m 二、填空题: 1在线性结构中,第一个结点(无)前驱结点,其余每个结点有且只有(1)个前驱结点;最后一个结点(无)后续结点,其余每个结点有且只有(1)个后续结点。 2单链表是(线性表)的链式存储表示。 3若数组第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是(108)。 4.在一个长度为n的线性表的第i个元素(1=i=n1)之前插入一个元素时,需向后移动(n+1-i)个元素。 5在长度为n的线性表中删除第i个元素(1in)时,需向前移动(n-i)个元素。 6在

12、双向链表中,每个结点有两个指针域,一个指向(直接前驱),另一个指向(直接后继)。7在一个单链表中p所指结点之后插入一个s所指结点时,应执行snext=( pnext )和pnext=( s )的操作。8对于一个具有n个结点的单链表,在已知P所指结点后插入一个新结点的时间复杂度是(O(1) );在给定值为X的结点后插入一个新结点的时间复杂度是( O(n) )。 9顺序表相对于链表的优点有(可以随机存取,存储密度高)。 10链表相对于顺序表的优点有(不需要连续的存储空间,插入和删除时不需要移动元素 )。11在n个结点的顺序表中插入和删除一个结点需平均移动大约( n/2 )个结点。12线性表的链式存

13、储有三种,分别是(单链表 )(双向链表)( 循环链表)。用数组描述的线性链表称为(静态链表). 13在顺序表中访问任意一结点的时间复杂度均为(O(1),因此,顺序表也称为 ( 随机存取 )的数据结构。 14在n个结点的单链表中要删除已知结点*p,需找到( 该结点的前驱 ),其时间复杂度为( O(n) )。 15在循环链表中,可根据任一结点的地址遍历整个链表,而单链表中需知道( 头指针 )才能遍历整个链表。所以,整个单链表是由( 头指针)来作为唯一标识的。三、阅读理解题NODE *demol(NODE *head, NODE *p) NODE *q=head->link; while(q

14、&& q->next!=p) q=q->link; if(q) return q; else printf(“*p not in linklist.n”); 第3章 栈和队列一、单项选择题:1一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( )。 A. edcba B. decba Cdceab Dabcde。 2.栈结构通常采用的两种存储结构是( )。 A. 顺序存储结构和链表存储结构 B散列方式和索引方式 C链表存储结构和数组 D线性存储结构和非线性存储结构 3栈的特点是( B ),队列的特点是( A )。 A. 先进先出 B先进后出4一个队列的

15、入列序列是1,2,3,4,则队列的输出序列是( )。 A. 4,3,2,l B. 1,2,3,4 Cl,4,3,2 D3,2,4,l 5判定一个循环队列 QU(最大空间是 mo)为空的条件是( )。 A. QU.front= =QU.rear B. QU.front!=QU.rear C QU.front=(QU.rearl)%mo DQU.front!=(QU.rear1)mo 6判定一个循环队列QU(最大空间是mo)为满队列的条件是( )。 AQU.frontQU.rear BQU.front!=QU.rear C. QU.front=(QU.rearl)%mo DQU.front!=(Q

16、U.rearl)%mo 7循环队列用数组 A0,ml存放其元素值,已知其头尾指针分别是 front和 rear,则当前队列中的元素个数是( )。 A.(rear-frontm)% m B. rear-front + 1 Crearfront1 D rearfront 8栈和队列的共同点是( )。 A都是先进后出 B都是先进先出 C只允许在端点处插入和删除元素 D没有共同点 9向一个栈顶指针为 top的链栈中插入一个S所指结点时,则执行( )。 A .topnext=s; Bs-nexttop-next; topnexts; C s-nexttop;tops; D s-nexttop;topto

17、pnext; 10从一个栈顶指针为top的链栈中删除一结点时,用X保存被删结点的值,则执行( ). A. x=top;top=topnext; B xtopdata; C toptop-next;xtop-data; D xtop-data;toptop-next 11在链队列中,设front和rear分别为队首和队尾指针,插入s所指结点的运算为( )。 A . frontnext=s; front=s; B rear-nexts;rears; C s-nextrear;rears; D snext=front;front=s; 12在链队中,设front和rear分别为队首和队尾指针,则删除

18、一个结点的运算为( )。 A rearfront-next; B rearrear-next; C frontfrontnext; D frontrear-next 13插入和删除只能在一端进行的线性表,称为()。 A队列 B循环队列 C栈 D循环栈 14.在栈中,出栈操作的时间复杂度为()。 A. O(1) BO(log2n) CO(n) DO(n2)15设长度为n的单循环链队列,若只设头指针,则入队操作的时间复杂度为()。 A. O(1) BO(log2n) CO(n) DO(n2) 21.设长度为n的单循环链队列,若只设尾指针,则出队操作的时间复杂度为()。 A. O(1) BO(log

19、2n) CO(n) DO(n2)二、填空题: 1 线性表、栈和队列都是( 线性)结构,可以在线性表的(任何)位置插入和删除元素;对于栈只能在( 栈顶 )插入和删除元素;对于队列只能在( 队尾)插入元素和( 对头 )删除元素。 2向顺序栈中压入元素的操作是(判断栈是否已满,如果未满,将元素存入栈顶指针指向的存储位置,栈顶指针增一 ;否则先增加栈的空间,然后压栈。 )。向链栈中压入元素的操作是(压入元素的指针指向链栈的头指针,再修改链栈的头指针指向刚压入的元素 )。3对顺序栈进行出栈时的操作是(如果栈空,出栈失败;否则,栈顶指针减一,并将栈顶指针指向的元素取出)。对链栈进行出栈时的操作是(如果栈空

20、,出栈失败;否则,取出栈顶指针指向的元素,并将栈顶指针指向下一个元素)。 4在一个循环队列中,队首指针指向队首元素的( 存储位置 )。5从循环队列中删除一个元素时,其操作是( 如果队列空,删除失败;否则,取出队首指针指向的元素,然后修改队首指针指向下一个元素的存储位置)。 6在具有n个单元的循环队列中,队满时共有( n-1 )个元素。 7一个栈的输入序列是12345,则栈的输出序列43512是( 错误的 )。 8一个栈的输入序列是12345,则栈的输出序列12345是(正确的)。9在有n个元素的栈中,进栈和出栈操作的时间复杂度为( O(1) )和(O(1) )。 10设长度为n的链队列用单循环

21、链表表示,若只设头指针,则入队和出队操作的时间复杂度分别为(O(n) )和( O(1) );若只设尾指针,则人队和出队操作的时间复杂度分别为( O(1)和( O(1) )。 11在循环队列中,设队头指针front指向队头元素的前一个位置,队尾指针rear指向队尾元素。(1) 在循环队列中,队空标志为( Q.rear=Q.front );队满标志为( (Q.rear+1)%maxsize=Q.front )。(2)当rear=front时,队列长度为( Q.rear-Q.front 或 (Q.rear-Q.front+ m ) % m ) ;当 rear front时,队列长度是( (Q.rea

22、r-Q.front+ m ) % m )( 设循环队列长度为m)。12在顺序队列中,为了避免(假溢出)现象引入了循环队列的概念。其入队和出队操作为( Q.baseQ.rear=e;Q.rear=(Q.rear+1)%maxsize )和 ( e=Q.baseQ.front;Q.front=(Q.front+1)%maxsize )。第4章 串一、选择题1. 空串与空格串是相同的,这种说法 A. 正确 B.不正确2. 串是一种特殊的线性表,其特殊性体现在 A. 可以顺序存储 B.数据元素是一个字符 C. 可以链接存储 D.数据元素可以是多个字符3. 设有两个串p和q, 求q在p中首次出现的位置的

23、运算称作 A 连接 B 模式匹配 C求子串 D 求串长4. 设串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)的结果串是A)BCDEF B)BCDEFG C)BCPQRST D)BCDEFEF二、填空题1. 串的两种最基本的存储方式是 顺序存储 和 链式存储 2. 两个串相等的充分必要条件是 串的长度相等且各个位置的字符相同 3. 空串是 零个字符的串 ,

24、其长度等于 0 。4. 空格串是 一个或多个空格组成的串 , 其长度等于 空格字符的个数 。5. 设s='I_AM_A_TEACHER', 其长度是 14 三、操作题:1. 已知两个串为 s1="bc cad cabcadf",s2="abc",试求两个串的长度,并判断s2串是否是s1串的子串;如果s2是s1的子串,请指出s2在s1中的起始位置。94. 针对串的两种存储表示各设计一算法,判断该字符串是否是回文(即正读与反读相同,如"abcba"是一个回文,而"abc"则不是)(仅写出算法思想)。第5

25、章 数组与广义表1. 设二维数组A5×6的每个元素占4个字节,已知Loc(a00)=1000,A共占多少字节?120 A的终端结点a45的起始地址为何?1116 按行和按列优先存储时,a25的起始地址分别为何?行优先:1068 列优先:11082稀疏矩阵的存储方法及其分类。三元组及其行列数分类:三元组顺序表,行逻辑链接的顺序表,十字链表3广义表的概念和存储结构:如何区分表结点和原子结点4求下列广义表运算的结果:1) GetHead(p,h,w) :p2) GetTail(b,k,p,h) :(k, p, h)3) GetHead(a,b),(c,d) :(a, b)4) GetTai

26、l(a,b),(c,d) :(c,d)5) GetHead(GetTail(a,b),(c,d) :(c,d)6) GetTail(GetHead(a,b),(c,d) : (b)第6章 树和二叉树 一、单项选择题: 1对于任何一棵二叉树T,如果其终端结点数为no,度为2的结点数为n2,则()。 Ano=n2+1 B n2=n0+1 Cn0=2n2+1 Dn2=2n0+1 2设X是一棵树,x是对应于X的二叉树,则X的先序遍历和X的()遍历相同。 A先序 B中序 C后序 D不确定 3深度为K的二叉树至多有()个结点。 A. 2k B. 2k 1 C. 2k-1 D. 2k-1 -14对于二叉树来

27、说,第i层上至多有()个结点。 A. 2i B. 2i 1 C. 2i-1 D. 2i-1 -1 5结点先序为XYZ的不同二叉树,那么它有()不同形态。 A3 B4 C5 D6 6某二叉树的前序遍历序列为IJKLMNO,中序遍历序列为JLKNMOI,则后序遍历序列为()。 AJLKMNOI BLKNOMI CLKJNOMI DLNOMKJI 7.某二叉树的后序遍历序列为dabec,中序遍历序列为debac,则前序序列遍历为( )。 Aached Bdecab C. deabc Dcedba 8具有35个结点的完全二叉树的深度为()。 A5 B. 6 C7 D8 9将一棵有100个结点的完全二叉

28、树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为()。 A98 B99 C50 D48 10某二叉树的前序和后序序列正好相反,则该二又树一定是()的二叉树。A空或只有一个结点 B、高度等于其结点数 C任一结点无左孩子 D任一结点无右孩子 11设X是一棵树,x是对应于X的二叉树,则X的后序遍历和X的()遍历相同。 A先序 B中序 C后序 D层次序 12树最适合用来表示()。 A有序数据元素 B.无序数据元素 C.元素之间无联系的数据 D.元素之间有分支层次关系 13对于一棵满二叉树,m个树叶,n个结点,深度为h,则()。 A nhm B hm=2n Cm

29、h-1 Dn2h-l 14.判断线索二叉树中某结点p有左孩子的条件是()。 A p!null Bp-lchild!=null Cp->ltag=0 Dp-ltag=1 15二叉树按某种顺序线索化后,任一结点均有指向其前驱和后继的线索,这种说法( )。 A.正确 B错误16深度为5的二叉树至多有( )个结点。 A.16 B32 C31 D10 17在一非空二叉树的中序遍历序列中,根结点的右边( )。 A.只有右子树上的所有结点 B只有右子树上的部分结点 C只有左子树上的部分结点 D只有左子树上的所有结点 18设n,m为一棵二叉树上的两个结点,在中序遍历时,n在m前的条件是( )。 A. n

30、在m右方 Bn是m祖先 Cn在m左方 Dn是m子孙 二、填空题:1 对于二叉树来说,第i层上至多有( 2i-1 )个结点。2 深度为k的二叉树至多有( 2K-1 )个结点。3 树中结点的最大层次称为树的( 深度 )。 4由一棵二叉树的前序序列和(中序序列)可唯一确定这棵二叉树。 5高度为5的完全二叉树至少有( 16 )个结点。 6将一棵树转换成一棵二叉树后,二叉树根结点没有( 右 )子树。 7一棵含有n个结点的完全二叉树,它的高度是( floor(log2n)+1 )。 8含有n个结点的二叉树用二叉链表表示时,有(n+1)个空链域。 9哈夫曼树是带权路径长度(最小)的二叉树。 10具有m个叶结

31、点的哈夫曼树共有(2m-1)个结点。 11已知完全二叉树的第8层有8个结点,则其叶子结点数是( 68 )。 12已知完全二叉树的第7层有10个叶子结点,则整个二叉树的结点数最多是( 73 )。 13.一棵二叉树的第i(i>=l)层最多有(2i-1 )个结点;一棵有n(n0)个结点的满二叉树共有( (n+1)/2 )个叶子和(n-1)/2 )个非终端结点。 14现有按中序遍历二叉树的结果为abc,问有( 5 )种不同形态的二叉树可以得到这一遍历结果,这些二叉树分别是( )。15.以数据集4,5,6,7,10,12,18为结点权值所构造的Huffman树为( ),其带权路径长度为( )。三、

32、简答题: 1已知权值:4,2,5,7,5,请画出相应的哈夫曼树并计算其带权路径长度WPL。 2如果二叉树的后序和中序分别为:A,C,D,B,G,I,H,F,E和A,B,C,D,E,F,G,H,I 请给出二叉树的前序。3如何实现森林转化为一棵二叉树。 4一棵二叉树的先序、中序和后序序列分别如下,其中一部分未给出,试求出空格处的内容,并画出二叉树。 先序:B FICEH G 中序:DKFIA EJC 后序: K FBHJ G A四,画图题假设一颗二叉树的层次序列为ABCDEFGHIJ和中序序列为DBGEHJACIF。请画出该树第7章 图一、单项选择题:1用邻接表表示图进行广度优先遍历时,通常采用(

33、)来实现算法的。 A栈 B队列 C树 D图2用邻接表表示图进行深度优先遍历时,通常采用()来实现算法的。 A栈 B队列 C树 D图3已知图的邻接矩阵,则从顶点0出发按深度优先遍历的结点序列是( )。0 1 1 1 1 0 1 A. 0 2 4 3 1 5 61 0 0 1 0 0 1 B. 0 1 3 6 5 4 21 0 0 0 1 0 0 C. 0 4 2 3 1 6 5 1 1 0 0 1 1 0 D. 0 3 6 1 5 4 2 1 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 04已知图的邻接矩阵同上题8,则从顶点0出发按广度优先遍历结点序列是()。A0

34、243651 B0136425 C0423156 D0134256 5、深度优先遍历类似于二叉树的( )。A. 先序遍历 B. 中序遍历 C. 后序遍历 D. 层次遍历6、广度优先遍历类似于二叉树的( )。A. 先序遍历 B. 中序遍历 C. 后序遍历 D. 层次遍历7、任何一个无向连通图的最小生成树( )。A. 只有一棵 B. 一棵或多棵 C. 一定有多棵 D. 可能不存在8、对于一个具有n个顶点的有向图,采用邻接矩阵表示该矩阵的大小是( )。A. n B. (n-1)2 C. n-1 D. n210、对于一个具有n个顶点和e条边的无向图,采用邻接表表示,则表头向量的大小为();所有弧结点的

35、总数是( )。A. n B. n+1 C.n-1 D.n+eA. e/2 B. e C. 2e D. n+e二、填空题:1、图有(邻接矩阵)、( 邻接表)(十字链表)(邻接多重表)等存储结构,遍历图有(深度优先搜索)、(广度优先搜索)等方法。2、有向图用邻接矩阵存储,第i行元素之和等于顶点i的( 度 )。3、设有一稀疏图,则G采用(邻接表)存储较省空间。4、设有一稠密图,则G采用(邻接矩阵)存储较省空间。5、已知一个图用邻接矩阵表示,删除所有从第i个顶点出发的边的方法是(邻接矩阵的第i行置0;如果是无向图,第i列也同时置0)。6、若求一个稀疏图G的最小生成树,最好用(Kruskal)算法来求解

36、。7、若求一个稠密图G的最小生成树,最好用( Prim )算法来求解。8、拓扑排序输出的顶点数小于有向图的顶点数,则该图一定存在(环)。三简答题1. 已知图G如下所示,画出G的邻接矩阵和邻接表、逆邻接表。AB C D E2. 假定无向图G有6个结点和9条边,并依次输入这9条边为(0,1),(0,2),(0,4),(0,5),(1,2),(2,3),(2,4),(3,4),(4,5)。试从顶点0出发,分别写出按深度优先搜索和广度优先搜索进行遍历的结点序列。3. 图G=(V,E),V=0,1,2,3,4,5,E=0,1,0,2,1,4,2,5,5,4,4,3,5,3。写出图G中顶点的所有拓扑排序。

37、4. 从某源点到其余顶点的最短路径的计算方法。5. 设无向图G的邻接矩阵如下所示,画出用Prim算法和Kruskal 算法所得的最小生成树。 1 2 2 21 3 2 3 1 2 1 3 2 3 第9章 查 找一、单项选择题: 1顺序查找法适合于存储结构为( )的线性表。 A.散列存储 B顺序存储或链接存储 C压缩存储 D索引存储 2对线性表进行折半查找时,要求线性表必须( )。 A以顺序方式存储 B以链接方式存储C以顺序方式存储,且结点按关键字有序排序 D以链接方式存储,且结点接关键字有序排序 3采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为( )。 A . n B n2

38、C(n l)2 D(n 1)2 4采用折半查找方法查找长度为n的线性表时,每个元素的平均查找长度为( )。 A.O(n2) BO(nlog2n) CO(n ) DO(log2n) 6有一个有序表为1,3,9,12,32,41,45,62,75,77,82,95,100,当折半查找值为82的结点时,( )次比较后查找成功。 A. 1 B2 C4 D8 7.设哈希表长m=14,哈希函数H(key)二key11。表中已有4个结点: addr(15) 4 addr(38)5 addr(61)=6 addr(84)=7 其余地址为空, 如用二次探测再散列处理冲突,关键字为49的结点的地址是( )。 A.

39、 8 B. 3 C5 D9 8.有一个长度为12的有序表,按折半查找法对该表进行查找,在表内个元素等概率情况下查找成功所需的平均查找长度为( )。A. 35/12 B. 37/12 C39/12 D43/12 9采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分( )个结点最佳。 A. 10 B25 C6 D62510.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,可以采用( )查找方法。A. 分块 B顺序 C二分 D散列 11.设有100个元素,用折半查找法进行查找时,最大比较次数是( )。A. 25 B50 C10

40、 D7 (判定树的深度foor(log2n)+1) 12设有100个元素,用折半查找法进行查找时,最小比较次数是( )。A. 7 B4 C2 D1 13哈希函数有一个共同性质,即函数值应当以( )取其值域的每个值。A. 同等概率 B最大概率 C最小概率 D平均概率14设哈希地址空间为0.m-1,k为关键字,取哈希函数为H(k)=k % p,为了减少发生冲突的频率,一般取p为( )。A. 小于m的最大奇数 B小于m的最大偶数C小于m的最大质数 D小于m的最大合数 15某顺序存储的表格中有90000个元素,已按关键字值升序排列,假定对每个元素进行查找的概率是相同的,且每个元素的关键字值皆不同,用顺

41、序查找法查找时,平均比较次数约为( C ),最大比较次数约为( D)。A. 25000 B30000 C45000 D90000二、填空题:1在各种查找方法中,平均查找长度与结点个数n无关的查法方法是( 哈希表查找)。2折半查找的存储结构仅限于( 有序表 ),且是( 顺序存储)。3在分块查找方法中,首先查找( 索引表 ),然后再查找相应的( 块 )。4长度为255的表,采用分块查找法,每块的最佳长度是( 15 )。5假设在有序线性表Al20上进行折半查找,则比较一次查找成功的结点数为(1),则比较二次查找成功的结点数为( 2 ),则比较三次查找成功的结点数为( 4 ),则比较四次查找成功的结点

42、数为( 8 ),则比较五次查找成功的结点数为( 5 ),平均查找长度为( 3.7 )。6对于长度为n的线性表,若进行顺序查找,则时间复杂度为( O(n ) );若采用折半法查找,则时间复杂度为( (log2n) );若采用分块查找(假定总块数和每块长度均接近),则时间复杂度为( O(n1/2 ) )。7在散列存储中,装填因子的值越大,则(发生冲突的可能越大,查找时关键字进行比较的次数越多);的值越小,则(发生冲突的可能越小,查找时关键字进行比较的次数越少)。8.哈希查找的基本思想是按(关键字)决定数据的存储地址。9哈希表的查找效率主要取决于选取的(哈希函数),(处理冲突的方法)和( 哈希表的装

43、填因子 )。10.折半查找不成功时,出现(low>high)情况,程序终止。三、简答题:1 设哈希表的长度为13,哈希函数为H(k)=k %13,给定的关键字序列为:19,14,23,01,68,20,84,27,55,11,10,79,画出用线性探测法和链地址法解决冲突时所构成的散列表,并求等概率情况下这两种方法查找成功时的平均查找长度。2 假定有n个关键字,它们具有相同的哈希函数值,用线性探测法把这n个关键字存入到散列地址中要做多少次探测?(n+1)*n/23 设有序表为a,b,c,d,e,f,g,h,i,请画出分别对给定值e和k进行折半查找的过程。4 画出对长度为10的有序表进行折

44、半查找的判定树,并求其等概论时查找成功的ASL.第10章 内 部 排 序一、单项选择题:1、在所有的排序方法中,( )不是稳定的排序方法。A. 希尔排序 B. 冒泡排序 C. 直接插入排序 D. 归并排序2、设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好选用( )方法。A. 冒泡排序 B. 快速排序 C. 堆排序 D. 基数排序3、在待排序的元素序列基本有序的前提下,效率最高的排序方法是( )。A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序4、一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆为( )

45、。A. 79,46,56,38,40,80 B. 84,79,56,38,40,46C. 84,79,56,46,40,38 D. 84,56,79,40,46,385、一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( )。A. 38,40,46,56,79,84 B. 40,38,46,79,56,84C. 40,38,46,56,79,84 D. 40,38,46,84,56,796、一组记录的排序码为(25,48,16,35,79,82,23,40,36,72),其中含有5个长度为2的有序表,按归并排序的方

46、法对该序列进行一趟归并后的结果为( )。A. 16,25,35,48,23,40,79,82,36,72 B. 16,25,35,48,79,82,23,36,40,72C. 16,25,48,35,79,82,23,36,40,72 D. 16,25,35,48,79,23,36,40,72,827、排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( )。A. 希尔排序 B. 冒泡排序 C. 插入排序 D. 选择排序8、排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为( )

47、。A. 希尔排序 B. 归并排序 C. 插入排序 D. 选择排序9、用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下: 25,84,21,47,15,27,68,35,20 20,15,21,25,47,27,68,35,84 15,20,21,25,35,27,47,68,84 15,20,21,25,27,35,47,68,84,则所采用的排序方法是( )。A. 选择排序 B. 希尔排序 C. 归并排序 D. 快速排序10、下述几种排序方法中,不是基于比较的排序方法是( )。A. 插入排序 B. 选择排序 C. 快速排序 D. 基数排序11、下述几种排序方法中,要求内存量最大的是( )。A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序12、快速排序方法在( )情况下最不利于发挥其长处。A. 要排序的数据量太大 B. 要排序的数据中含有多个相同值C. 要排序的数据已基本有序 D.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论