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

下载本文档

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

文档简介

1、数据结构练习题习题1 绪论1.1 单项选择题以及一组相关1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的、数据信息在计算机中的 的运算等的课程。 A .操作对象E.计算方法C.逻辑结构D.数据映象 A 存储结构E.关系C.运算D.算法2. 数据结构DS(Data Struct)可以被形式地定义为 DS= ( D, R),其中D是的有限集合,R是D上的有限集合。 A .算法E.数据元素C.数据操作D.数据对象 A .操作E.映象C.存储D.关系3. 在数据结构中,从逻辑上可以把数据结构分成 。A. 动态结构和静态结构E.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部

2、结构4. 算法分析的目的是,算法分析的两个主要方面是 。1.2填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括、2. 在线性结构中,第一个结点结点,其余每个结点有且只有 3. 在树形结构中,树根结点没有和前驱结点,其余每个结点有且只有 个后续结点。结点,其余每个结点有且只有三种类型,树形结构和图形结构合称为 。个前驱结点;最后一个结点个直接前驱结点,叶子结点没有后续点,其余每个结点的直接后续结点可以 。在图形结构中,每个结点的前驱结点数和后续结点数可以关系,树形结构中元素之间存在4.5.6.7.线性结构中元素之间存在 算法的五个重要特性是 分析下面算法(程序段) for (i=0;i

3、< n;i+) for (j=0;j< n; j+)Aij=0;分析下面算法(程序段) for (i=0;i< n;i+) for (j=0; j<i; j+)Aij=0;分析下面算法(程序段)s=0;for (i=0;i< n;i+) for (j=0;j< n;j+)for (k=0;k< n; k+)s=s+Bijk;sum=s;10.分析下面算法(程序段)i=s=0;关系,图形结构中元素之间存在。关系。8.9.,给出最大语句频度,给出最大语句频度,给出最大语句频度给出最大语句频度,该算法的时间复杂度是,该算法的时间复杂度是,该算法的时间复杂度是

4、,该算法的时间复杂度是A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性5.计算机算法指的是,它必具备输入、输出和等五个特性。A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法A.可行性、可移植性和可扩充性B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性while (s<n) i+;s+=i;s=s+i11. 分析下面算法(程序段)给出最大语句频度_,该算法的时间复杂度是i=1; while (i&l

5、t;=n) i=i*2;1.3算法设计题1. 试写一算法,自大到小依次输出顺序读入的三个数X,Y和Z的值.2. 试写一算法,求出n个数据中的最大值。写出最大语句频度,该算法的时间复杂度。习题答案1.11. C , A 2. B,D 3. C4. C, A 5. C,B1.21.线性结构、树形结构、图形结构,非线性结构2.没有、1、没有、13.前驱、1、后续、任意多个4.任意多个5.一对一、一对多、多对多6.有穷性、确定性、可行性、输入、输出7.最大语句频度:n2 ,时间复杂度:.0 (n 2)8.最大语句频度:n (n+1)/2,时间复杂度:.0 (n )9.最大语句频度:n3 ,时间复杂度:

6、.0 (n 3) 110.最大语句频度:2n ,时间复杂度:2.0 (n)11.最大语句频度:log 2n,时间复杂度:.0 (log2n )习题2线性表2.1单项选择题1. 一个向量(即一批地址连续的存储单元)第一个元素的存储地址是100,每个元素的长度为 2,则第5个元素的地址是。A. 110 B. 108 C. 100 D. 1202. 线性表的顺序存储结构是一种 的存储结构,而链式存储结构是一种 的存储结构。A. 随机存取B .索引存取 C .顺序存取 D .散列存取3. 线性表的逻辑顺序与存储顺序总是一致的,这种说法。A. 正确B.不正确4. 线性表若米用链式存储结构时,要求内存中可

7、用存储单兀的地址。A. 必须是连续的 B. 部分地址必须是连续的C. 一定是不连续的D.连续或不连续都可以5. 在以下的叙述中,正确的是。A. 线性表的顺序存储结构优于链表存储结构B. 线性表的顺序存储结构适用于频繁插入/删除数据元素的情况C. 线性表的链表存储结构适用于频繁插入/删除数据元素的情况D. 线性表的链表存储结构优于顺序存储结构6. 每种数据结构都具备三个基本运算:插入、删除和查找,这种说法。A. 正确B.不正确7. 不带头结点的单链表head为空的判定条件是。A. head= =NULLB. head-> next= =NULLC. head-next= =head D.

8、head!=NULL8. 带头结点的单链表 head为空的判定条件是A. head= =NULLB. head-next= =NULLC. head-next= =headD. head!=NULL9. 非空的循环单链表head的尾结点(由p所指向)满足 。A. p-> next= =NULLB. p= =NULLC. p->n ext= =headD. p= =head10. 在双向循环链表的p所指结点之后插入 s所指结点的操作是 。A. p_>right=s; s->left=p; p->right->left=s; s_>right=p_>

9、right;B. p->right=s; p->right->left=s; s->left=p; s->right=p->right;C. s->left=p; s->right=p->right; p->right=s; p->right->left=s;D. s->left=p; s->right=p->right; p->right->left=s; p->right=s;11. 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行 A. s-&

10、gt;n ext=p->n ext; p->n ext=s; B. p->n ext=s->n ext; s->n ext=p;B. q->n ext=s; s->n ext=p; C. p->n ext=s; s->n ext=q;12. 在一个单链表中,若 p所指结点不是最后结点,在 p之后插入s所指结点,则执行 。A. s->n ext=p; p->n ext=s;B. s->n ext=p->n ext; p->n ext=s;C. s->n ext=p->n ext; p=s;C. p-&

11、gt;n ext=s; s->n ext=p;13. 在一个单链表中,若删除p所指结点的后续结点,则执行_。A. p->n ext= p->n ext->n ext; B. p= p->n ext; p->n ext= p->n ext->n ext;C. p->n ext= p->n ext; D. p= p->n ext- >n ext;14. 从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较 个结点。A. n B. n/2C. (n-1)/2D. (n+1)/215. 在一个具有n个结

12、点的有序单链表中插入一个新结点并仍然有序的时间复杂度是。2A. 0(1) B. 0( n)C. O (n) D. O (n log2n)16. 给定有n个元素的向量,建立一个有序单链表的时间复杂度是_ _ 。2A. 0(1) B. 0(n) C. 0 (n) D. 0 (n*log2n)2.2 填空题(将正确的答案填在相应的空中)1. 单链表可以做的链接存储表示。2. 在双链表中,每个结点有两个指针域,一个指向,另一个指向 。3. 在一个单链表中p所指结点之前插入一个s (值为e)所指结点时,可执行如下操作:q=head;while (q->n ext!=p) q=q->n ext

13、;s= new Node; s->data=e;q->n ext= ; /填空s->n ext=; /填空4. 在一个单链表中删除p所指结点的后继结点时,应执行以下操作:q= p->n ext;p->n ext=;_ll_填空delete ;/填空5. 在一个单链表中p所指结点之后插入一个s所指结点时,应执行s->next=_ _ 和p->next= 的操作。6. 对于一个具有n个结点的单链表,在已知 p所指结点后插入一个新结点的时间复杂度是 ;在给定值为x的结点后插入一个新结点的时间复杂度是 _ 。2.3算法设计题1. 设顺序表va中的数据元数递增有

14、序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。Status In sert_SqList(SqList &va,i nt x)if(va.length+1>maxsize) return ERROR;va.len gth+;for(i=va .len gth-1;va.elemi>x&&i>=0;i-)va.elemi+1=va.elemi;va.elemi+1=x;return 0K;2. 试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(ai, a 2,.an)逆置为(an, a n-i,a 1)。void rev

15、erse(int a, int size)int i,j,tmp;for(i=0, j=size-i; i<j; i+,j-)tmp=ai;ai=aj;aj=tmp;3. 已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除表中所有大于x且小于y的元素(若表中存在这样的元素)同时释放被删除结点空间。void del(LinkList L,elemtype a,elemtype b)p= L;q=p->next;while(q!=L && q->data<a)p=q;q=q->next;while(q!=L &&

16、 q->data<b)r=q;q=q->next;free(r);if(p!=q)p->next=q;4. 试写一算法,实现单链表的就地逆置 (要求在原链表上进行 )。void converse(NODEPTR L)NODEPTR p,q;p=L->next; q=p->next;L->next=NULL;while(p) /* 对于当前结点p,用头插法将结点 p插入到头结点之后*/ p->next=L->next;L->next=p;p=q; q=q->next;习题答案2.ii. B 2. A, C 3. B 4. D 5.

17、 C6. A 7. A 8. B9. C i0. D ii.B i2.B i3.A2.2 i. 线性结表2.i4.D i5.B i6.C前驱结点、后继结点3. s, p4. q->next, q5. p->n ext, s6. O (1) , O (n)习题3栈和队列3.1 单项选择题1. 一个栈的入栈序列 a, b, c, d, e,则栈的不可能的输出序列是 。A.edcba B.decba C.dceab D.abcde2. 若已知一个栈的入栈序列是1, 2, 3,,n,其输出序列为p1 , p2, p3,,pn,若p仁n,则pi为。A. i B. n=i C. n-i+1 D

18、.不确定3. 栈结构通常采用的两种存储结构是 。A. 顺序存储结构和链式存储结构B. 散列方式和索引方式C. 链表存储结构和数组D. 线性存储结构和非线性存储结构4. 判定一个顺序栈ST (最多元素为m0为空的条件是。A. top !=0 B. top= =0 C. top !=m0 D. top= =m0-15. 判定一个顺序栈 ST (最多元素为mC)为栈满的条件是。A. top ! =0 B. top= =0 C. top! =m0 D. top= =m0-16. 栈的特点是,队列的特点是。A.先进先出B.先进后出7. 向一个栈顶指针为 HS的链栈中插入一个s所指结点时,则执行。(不带空

19、的头结点)A. HS> next=s;B. s > next= HS > next; HS > next=s;C. s > next= HS; HS=s;D. s > next= HS; HS= HS > next;8. 从一个栈顶指针为 HS的链栈中删除一个结点时,用x保存被删结点的值,则执行 。(不带空的头结点)A. x=HS; HS= HS > next; B. x=HS> data;C. HS= HS > next; x=HS > data; D. x=HS > data; HS= HS > next;9.

20、一个队列的数据入列序列是1, 2, 3, 4,则队列的出队时输出序列是 。A. 4, 3, 2, 1 B. 1, 2, 3, 4C. 1, 4, 3 , 2D. 3, 2 , 4 , 110. 判定一个循环队列QU (最多元素为 m0)为空的条件是 。A. rear - front= =m0 B. rear-fr on t-1= =m0C. front= = rear D. front= = rear+111. 判定一个循环队列QU(最多元素为 m0, m0= =Maxsize-1 )为满队列的条件是 。A. (rear- fron t)+ Maxsize)% Maxsize = =m0B.

21、rear-fr on t-1= =m0C. front= =rearD. front= = rear+112. 循环队列用数组 A0 , m-1存放其元素值,已知其头尾指针分别是 front和rear,则当前队列中的元素个数是A. (rear-fr on t+m)%mB. rear-fr on t+1C. rear-fro nt-1D. rear-fr ont13. 栈和队列的共同点是。A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D. 没有共同点3.2 填空题(将正确的答案填在相应的空中)插入和删除元素;对于个元素。1. 向量、栈和队列都是 结构,可以在向量的 位置插入和删

22、除元素;对于栈只能在队列只能在 插入元素和 删除元素。2. 向一个长度为n的向量的第i个元素(K i < n+1)之前插入一个元素时,需向后移动3. 向一个长度为n的向量中删除第i个元素(K i < n)时,需向前移动 个元素。4. 在具有n个单元的循环队列中,队满时共有 个元素。习题答案3.1 1. C 2. C 3. A 4. B 5.D 6. BA 7.C 8. B 9. C 10. C 11. A 12. A 13.C3.2 1.线性、任何、栈顶、队尾、队首2. n-i+13. n-i4. n-1习题6树和二叉树6.1 单项选择题1. 由于二叉树中每个结点的度最大为2,所以

23、二叉树是一种特殊的树,这种说法 。A.正确 B.错误152. 假定在一棵二叉树中,双分支结点数为15,单分支结点数为 30个,则叶子结点数为 个。 A .B. 16 C. 17 D . 473. 按照二叉树的定义,具有3个结点的不同形状的二叉树有 种。A. 3 B. 4 C. 5 D. 64. 按照二叉树的定义,具有3个不同数据结点的不同的二叉树有 种。A. 5 B. 6 C. 30 D. 325. 深度为5的二叉树至多有个结点。A. 16 B. 32 C. 31 D. 106. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为_ _。A. 2h B. 2h-1

24、 C. 2h+1 D. h+17. 对一个满二叉树,m个树叶,n个结点,深度为h,则 。A. n=h+m B. h+m=2 nC. m=h-1 D. n=2h-18. 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序。A.不发生改变 B.发生改变 C. 不能确定 D. 以上都不对9. 如果某二叉树的前根次序遍历结果为stuwv,中序遍历为uwtvs,那么该二叉树的后序为 。 A. uwvtsB. vwuts C. wuvts D. wutsv10. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法。 A. 正确 B.误11. 某二叉树的前序遍历结点访问顺序是ab

25、dgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是 。12. A. C.13.A. bdgcefha B. gdbecfha C. bdgaechf D. gdbehfca 在一非空二叉树的中序遍历序列中,根结点的右边 。只有右子树上的所有结点B. 只有右子树上的部分结点只有左子树上的部分结点D. 只有左子树上的所有结点如图6.1所示二叉树的中序遍历序列是A. abcdgefB. dfebagc图6.114.C. dbaefcgOD. defbagc二叉树如图6.2所示,其中序遍历的序列为 abdgcefh B. dgbaechfC. gdbehfcaD.ab

26、cdefgh15.设为一棵二叉树上的两个结点,在中序遍历时,a在b前的条件是16.decaba,bA. a在b的右方B. a在b的左方C. a是b的祖先D. a是b的子孙已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是C. deabc D. cedba。 A. acbed B.17. 实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用存储结构。A.二叉链表B.广义表存储结构C.三叉链表D.顺序存储结构18. 如图6.3所示的4棵二叉树,不是完全二叉树。图6.3正确图k1&ksk 26.5 一棵树 .-V k 7本目的O4. 一棵

27、二叉树的结点数据采用顺序存储结构,存储于数组t中,如图6.6所示,则该二叉树的链接表示形式为20. 在线索化二叉树中,t所指结点没有左子树的充要条件是 。A. t > left=NULLB. t> ltag=1C. t > ltag=1 且 t > left=NULL D. 以上都不对21. 二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索,这种说法。A.B.错误22. 二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法A.正确 B. 错误23. 具有五层结点的二叉平衡树至少有 个结点。A. 10 B. 12 C.

28、 15 D. 1724. 树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。这里,我们把由树转化得到的二叉树叫做这棵数对应的二叉树。结论是正确的。A. 树的先根遍历序列与其对应的二叉树的先序遍历序列相同B. 树的后根遍历序列与其对应的二叉树的后序遍历序列相同C. 树的先根遍历序列与其对应的二叉树的中序遍历序列相同D. 以上都不对25. 树最适合用来表示。A.有序数据元素B.无序数据元素C. 元素之间具有分支层次关系的数据D.元素之间无联系的数据6.2 填空题(将正确的答案填在相应的空中)1. 有一棵树如图6.5所示,回答下面的问题:这棵树的根结点

29、是;这棵树的叶子结点是;结点k3的度是;这棵树的度是; 这棵树的深度是 ;结点k3的子女是;结点k3的父结点是2. 指出树和二叉树的三个主要差别 、。;3. 从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基5. 深度为k的完全二叉树至少有 _个结点。至多有 个结点,若按自上而下,从左到右次序给结点编号(从始),则编号最小的叶子结点的编号是 。图6.6一棵二叉树的顺序存储数组t6. 在一棵二叉树中,度为零的结点的个数为n o,度为2的结点的个数为n 2,则有no=。个非终7. 一棵二叉树的第i (i > 1 )层最多有 个结点;一棵有 n (n>0)个结点的满二叉树共

30、有 个叶子和端结点。8. 结点最少的树为,结点最少的二叉树为。9. 现有按中序遍历二叉树的结果为abc,问有种不同形态的二叉树可以得到这一遍历结果,10. 由如图6.7所示的二叉树,回答以下问题:其中序遍历序列为其前序遍历序列为其后序遍历序列为6.3 简答题1.2.3.4.根据二叉树的定义,具有三个结点的二叉树有假设一棵二叉树的先序序列为 EBADCFHGIK和中序序列为 请画出该树。由如图6.7所示的二叉树,回答以下问题:(1)画出该二叉树的中序线索二叉树;(2)画出该二叉树的后序线索二叉树;(3)画出该二叉树对应的森林。已知一棵树如图 6.85种不同的形态,请将它们分别画出。ABCDEFG

31、HIJK所示,转化为一棵二叉树,表示为这些二叉树分别是一棵二叉树图6.75.6.7.以数据集4, 5, 6, 一棵含有N个结点的证明:一棵满k叉树上的叶子结点数n0和非叶子结点数n1之间满足以下关系:0=(k-1)n 1+17,10,12 ,18为结点权值,画出构造k叉树,可能达到的最大深度和最小深度各为多少Huffman树的每一步图示,计算其带权路径长度为。n6.4算法设计题1.编写按层次顺序(同一层自左至右)遍历二叉树的算法。2 试编写算法,对一棵二叉树,统计叶子的个数。3 .试编写算法,对一棵二叉树根结点不变,将左、右子树进行交换,树中每个结点的左、右子树进行交换。7. 假设用于通讯的电

32、文仅有八个字母(a,b,c,d,e,f,g,h)组成,字母在电文中出现的频率分别为0.07, 0.19, 0.02, 0.06,0.32, 0.03, 0.21,0.10。试为这八个字母设计哈夫曼编码。使用0-7的二进制表示形式是另一种编码方案。对于上述实例,比较两种方案的优缺点。8. 试编写算法,对一棵以孩子-兄弟链表表示的树统计叶子的个数。假设一棵序序列为ABCDEFGHIJK请画出该树。习题答案6.11. B 2. B 3. C 4. C 5. C11. D 2. A 13. B 14. B19. B 20. B 21. B 22. B二叉树的先序序列为 EBADCFHGIKJ和中6.

33、A15. B23. B7. D16. D24. A8. A 9. C 10. A17. C 18. C25. C6.21.2. k1 k2,k5,k7,k4树的结点个数至少为1(不同教材规定不同),而二树中结点的最大度数没有限制,而二叉树结点的最 树的结点无左、右之分,而二叉树的结点有左、右 树可采用孩子-兄弟链表(二叉链表)做存储结构,4.如图6.9所示5. 2k-1、2k-1、2 k-2+16. n2+17. 2 2log 2n+1-12 肌严-13.只有一个结点的树;空的二叉树5 ;如图6.10 所示决树的有关问题。叉树的结点个数可以为 0;大度数为2;之分;目的并利用二叉树的已有算法解

34、8.9.6.32.、abdgcefhi 、gdbeihfca 、 图 6.11图6.11树形5种线索二叉树如图6.13 (右)所示;CG图 6.126.8的树转化为一;中序线索二叉树如图6.13 (左)所示;后序6.14所示。3.该二叉树转换后的的森林如图NULL6.图NULL图图中序和后序线索树对应的森林6.145.画出构造Huffman树如图6.16图 6.15所示,计算其带权路径长度为一棵树的孩子兄弟表。10. dgbaechif1. 5 种,二叉树如图6.12所示。6. 一棵含有N个结点的k叉树,可能达到的最大深度 h=N-k+1 最小深度各为:log kN+1。图 6.16 Huff

35、man 树习题7 图7.1单项选择题1.在一个图中,所有顶点的度数之和等于所有边数的 倍。A. 1/2 B. 1 C. 2 D. 42 .任何一个无向连通图的最小生成树 。A.只有一棵B.有一棵或多棵C. 一定有多棵D.可能不存在3 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。A. 1/2 B. 1 C. 2 D. 44. 一个有n个顶点的无向图最多有条边。A. n B. n(n-1)C. n(n-1)/2D. 2n5. 具有4个顶点的无向完全图有 条边。A. 6 B. 12 C. 16 D. 206具有6个顶点的无向图至少应有 条边才能确保是一个连通图。A. 5 B. 6

36、C. 7 D. 87 .在一个具有n个顶点的无向图中,要连通全部顶点至少需要 条边。A. n B. n+1 C. n-1 D. n/28. 对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是_2 2A. n B. (n-1)C. n-1 D. n9. 对于一个具有 n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为 总数是_。 A. n B. n+1 C. n-1 D. n+e A. e/2 B. e C.2e D. n+e一;所有邻接表中的接点10已知一个图如图7.1所示,若从顶点a出发按深度搜索法进行遍历,则可能得到则可能得到的一种顶点序列._;按宽度搜索法进行

37、遍历,C. a,e,b,c,f,dC. a,e,b,c,f,d的一种顶点序列为 为。D. a,e,d,f,c,bD. a,c,f,d,e,b图7.1一个无向图11已知一有向图的邻接表存储结构如图7.2所示。所得到的顶点序列是 根据有向图的深度优先遍历算法,从顶点 v1出发,A. v1,v2,v3,v5,v4 B. v1,v2,v3,v4,v5C. v1,v3,v4,v5,v2D. v1,v4,v3,v5,v2 根据有向图的宽度优先遍历算法,从顶点A. v1,v2,v3,v4,v5B. v1,v3,v2,v4,v5v1出发,所得到的顶点序列是C. v1,v2,v3,v5,v4 D. v1,v4,

38、v3,v5,v212 采用邻接表存储的图的深度优先遍历算法类似于二叉树的 。A.先序遍历B.中序遍历C.后序遍历D.按层遍历13采用邻接表存储的图的宽度优先遍历算法类似于二叉树的 。A.先序遍历B.中序遍历C.后序遍历D.按层遍历14判定一个有向图是否存在回路除了可以利用拓扑排序方法外,还可以利用A.求关键路径的方法B.C.宽度优先遍历算法D.求最短路径的Dijkstra 方法深度优先遍历算法15 .关键路径是事件结点网络中。A.从源点到汇点的最长路径B.从源点到汇点的最短路径C.最长的回路D.最短的回路16.下面不正确的说法是。(1 )在AOE网中,减小一个关键活动上的权值后,整个工期也就相

39、应减小;(2) AOE网工程工期为关键活动上的权之和;(3) 在关键路径上的活动都是关键活动,而关键活动也必在关键路径上。A. (1)B. (2)17.用DFS遍历一个无环有向图,并在C. (3)D. (1)、(2)DFS算法退栈返回时打印出相应的顶点,则输出的顶点序列是A.逆拓朴有序的B.拓朴有序的18.在图7.3所示的拓朴排列的结果序列为 A.125634C.无序的C.123456D.52163419.一个有n个顶点的无向连通图向图它所包含的连通分量个数为。A.0B.1C.nD.n+120.对于个有向图,若-个顶点的入度为k1,、出度为k2,则对应邻接表中该顶点单链表中的结点数为。A.k1

40、B.k2C.k1-k2D.k1+k221.对于个有向图,若-个顶点的入度为k1,、出度为k2,则对应逆邻接表中该顶点单链表中的结点数为。A.k1B.k2C.k1-k2D.k1+k27.2 填空题(将正确的答案填在相应饿空中)1 . n个顶点的连通图至少 条边。2 .在无权图G的邻接矩阵A中,若(vi,vj) 或v vi,vj 属于图G的边集合,则对应元素Aij 等于,否则等于 3 .在无向图G的邻接矩阵A中,若Aij 等于1,则Aji 等于。4 .已知图G的邻接表如图7.4所示,其从顶点v1出发的深度有限搜索序列为 ,其从顶点v1出发的宽度优先搜索序列为。v1v2v3v4Av5v6A图7.4

41、图G的邻接表v3v5v6i个结点的入度的方法是i个结点出发的边的方法是5. 已知一个有向图的邻接矩阵表示,计算第6 .已知一个图的邻接矩阵表示,删除所有从第v37如果含n个顶点的图形成一个环,则它有 棵生成树。8个非连通无向图,共有 28条边,则该图至少有个顶点。9 遍历图的过程实质上是 。 BFS遍历图的时间复杂度为 ,DFS遍历图的时间复杂度为 ,两者不同之处在于 ,反映在数据结构上的差别是 _。10. 表示法是唯一的,而表示法是不唯一的。11. 有向图中的结点前驱后继关系的特征是。12. 若无向图G的顶点度数最小值大于等于时,G至少有一条回路。13根据图的存储结构进行某种次序的遍历,得到

42、的顶点序列是 的。7.3 综合题7.6、图7.7构造最小生成树:1 已知如图7.5所示的有向图,请给出该图的(1) 每个顶点的入/出度;(2) 邻接距阵;(3 )邻接表;(4) 逆邻接表;(5) 强连通分量。2 请用克鲁斯卡尔和普里姆两种算法分别为图 (1)图7.6图7.84 请用图示说明图7.9从顶点a到其余各顶点之间的最短路径。5 .已知AOE网有9个结点:V1, V2, V3, V4, V5, V6, V7, V8, V9,其邻接矩阵如下:(1) 请画出该AOE图。(2) 计算完成整个计划需要的时间。 求出该AOE网的关键路径。OG645OGOGOGOGOGOGOGOGOG1OGOGOG

43、OGOGOGOGOG1OGOGOGOGOGOGOGOGOG2OGOGOGOGOGOGOGOGOG97:OGOGOGOGOGOGOGOG4OGOGOGOGOGOGOGOGOG2OGOGOGOGOGOGOGOG4OGOGOGOGOGOGOGOGOG习题答案7.11. C2.B3.B4. C5. A6. A7.C8.D9. AC10.DB11. CB12. A13. D14.D15.A16.A17.A18.B19.B20.B21.A7.2 1.n-12. 1;03. 14. v1,v2,v3,v6,v5, v4; v1,v2,v5,v4,v3, v65. 求矩阵第i列非零元素之和6. 将矩阵第i行全

44、部置为零7. n8.99. 对每个顶点查找其邻接点的过程;O(e) (e为图中的边数);0(e);遍历图的顺序不同;DFS采用栈存储访问过的结点,BFS采用队列存储访问过的结点。10. 邻接矩阵邻接表11. 一个结点可能有若干个前驱,也可能有若干个后继12. 213. 唯一7.3 1.2i 432.(3)关键路径为:(V1, V2,V5, V7, V9)和(V1, V2,V5,V8, V9,)3.5 15 12 6 342 3 645. (1)该AOE图为:(2)完成整个计划需要18天。习题8 查找的线性表。顺序存储或链接存储 索引存储8.1单项选择题1顺序查找法适合于存储结构为A. 散列存储

45、B.C.压缩存储D.2. 对线性表进行二分查找时,要求线性表必须_A. 以顺序方式存储B. 以链接方式存储C. 以顺序方式存储,且结点按关键字有序排序D. 以链接方式存储,且结点按关键字有序排序3. 采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为A. n B. n/2 C. (n +1)/2D. (n-1)/24. 采用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为2A. O (n ) B. 0(nlog2n)C. 0(n)D. O(log2n)5. 二分查找和二叉排序树的时间性能 。A.相同 B. 不相同6. 有一个有序表为1 , 3, 9, 12, 32,

46、41, 45, 62, 75, 77, 82, 95, 100,当二分查找值82为的结点时, 次比较后查找成功。A. 1 B. 2 C. 4 D. 87. 设哈希表长 m=14,哈希函数 H(key)=key%11。表中已有 4个结点:addr (15)=4; addr (38)=5; addr (61)=6; addr (84)=7如用二次探测再散列处理冲突,关键字为49的结点的地址是 。A. 8 B. 3 C. 5 D. 98. 有一个长度为12的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况下查找成功所需的平均比较次数为。A. 35/12 B. 37/12 C. 39/12

47、D. 43/129 .对于静态表的顺序查找法,若在表头设置岗哨,则正确的查找方式为。A. 从第0个元素往后查找该数据元素B. 从第1个元素往后查找该数据元素C. 从第n个元素往开始前查找该数据元素D. 与查找顺序无关10. 解决散列法中出现的冲突问题常采用的方法是 。A. 数字分析法、除余法、平方取中法B. 数字分析法、除余法、线性探测法C. 数字分析法、线性探测法、多重散列法D. 线性探测法、多重散列法、链地址法11. 采用线性探测法解决冲突问题,所产生的一系列后继散列地址。A. 必须大于等于原散列地址B. 必须小于等于原散列地址C. 可以大于或小于但不能等于原散列地址D. 地址大小没有具体

48、限制12. 对于查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。这种方式主要适合于 。A.静态查找表B.动态查找表C.静态查找表与动态查找表D两种表都不适合13. 散列表的平均查找长度 。A. 与处理冲突方法有关而与表的长度无关B. 与处理冲突方法无关而与表的长度有关C. 与处理冲突方法有关而与表的长度有关D. 与处理冲突方法无关而与表的长度无关8.2 填空题(将正确的答案填在相应的空中)1. 顺序查找法的平均查找长度为 ;折半查找法的平均查找长度为 ;哈希表查找法采用链接法处理冲突时的平均查找长度为。2. 在各种查找方法中,平均查找长度与结点个数n无关的查找方法是

49、。3. 折半查找的存储结构仅限于 ,且是。4. 假设在有序线性表 A1.20上进行折半查找,则比较一次查找成功的结点数为 ,则比较二次查找成功的结点数为,则比较三次查找成功的结点数为 ,则比较四次查找成功的结点数为 ,则比较五次查找成功的结点数为 ,平均查找长度为。5. 对于长度为n的线性表,若进行顺序查找,则时间复杂度为 ;若采用折半法查找,则时间复杂度为 ;6 .已知有序表为(12, 18, 24, 35, 47, 50, 62, 83, 90, 115, 134),当用折半查找 90时,需进行 次查找可确定成功;查找47时,需进行 次查找成功;查找100时,需进行 次查找才能确定不成功。

50、7 .二叉排序树的查找长度不仅与 有关,也与二叉排序树的 有关。8 .一个无序序列可以通过构造一棵 树而变成一个有序树,构造树的过程即为对无序序列进行排序的过程。9. 平衡二叉排序树上任一结点的平衡因子只可能是 、 或 _。10. 法构造的哈希函数肯定不会发生冲突。11. 在散列函数 H(key)=key%p中,p应取。12. 在散列存储中,装填因子g的值越大,则 ; a的值越小,则 。8.3 综合练习题1. 画出对长度为10的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。4. 选取哈稀函数 H( k) =( 3k)M0D1。用开放定址法处理冲突,di=i (7k)MODO

51、+1) (1=1,2,3,).试在0-10的散列地址空间中对关键字序列(22,41,53,46,30,13,01,67)造哈希表,并求等概率情况下查找成功时的平均查找长度。5. 已知一组关键字49 , 38, 65 , 97, 76, 13, 27, 44, 82, 35, 50,画出由此生成的二叉排序树,注意边插入边平 衡。习题答案8.11. B 2.9. C 10.CD3. C 4. D 5.11. C 12. B 13B 6.CC 7. D 8 . B8.21.(n+1)/2、(n+1)*log2(n+1)/n-1、1+:C为装填因子)2. 哈希表查找法3. 顺序存储结构、有序的4. 1、2、4、8、5、

温馨提示

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

评论

0/150

提交评论