浙江理工大学数据结构练习题(含答案).docx
《浙江理工大学数据结构练习题(含答案).docx》由会员分享,可在线阅读,更多相关《浙江理工大学数据结构练习题(含答案).docx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构练习题习题 1绪论1.1 单项选择题1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的 、数据信息在计算机中的 以及一组相关的运算等的课程。 A操作对象计算方法逻辑结构数据映象 A存储结构关系运算算法2. 数据结构 DS(Data Struct)可以被形式地定义为 DS=(D,R),其中 D 是 的有限集合,R 是 D 上的 有限集合。 A算法数据元素数据操作数据对象 A操作映象存储关系3. 在数据结构中,从逻辑上可以把数据结构分成 。A动态结构和静态结构紧凑结构和非紧凑结构线性结构和非线性结构内部结构和外部结构4. 算法分析的目的是 ,算法分析的两个主要方面是 。 A.
2、找出数据结构的合理性B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性 A. 空间复杂性和时间复杂性B. 正确性和简明性C. 可读性和文档性D. 数据复杂性和程序复杂性5. 计算机算法指的是 ,它必具备输入、输出和 等五个特性。A. 计算方法B. 排序方法C. 解决问题的有限运算序列D. 调度方法 A. 可行性、可移植性和可扩充性B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性1.2 填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括 、 和 三种类型,树形结构和图形结构合称为 。2. 在线性结构中,第一个结
3、点 前驱结点,其余每个结点有且只有 个前驱结点;最后一个结点 后续结点,其余每个结点有且只有 个后续结点。3. 在树形结构中,树根结点没有 结点,其余每个结点有且只有 个直接前驱结点,叶子结点没有 结点,其余每个结点的直接后续结点可以 。4. 在图形结构中,每个结点的前驱结点数和后续结点数可以 。5. 线性结构中元素之间存在 关系,树形结构中元素之间存在 关系,图形结构中元素之间存在 关系。6. 算法的五个重要特性是 , , _ , , _。7. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是 。 for (i=0;in;i+)for (j=0;jn; j+) Aij=0;8
4、. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是 。 for (i=0;in;i+)for (j=0; ji; j+) Aij=0;9. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是 。 s=0;for (i=0;in;i+) for (j=0;jn;j+)for (k=0;kn;k+) s=s+Bijk;sum=s;10. 分析下面算法(程序段)给出最大语句频度 ,该算法的时间复杂度是 。i=s=0;while (sn)i+;s+=i;/s=s+i11. 分析下面算法(程序段)给出最大语句频度 ,该算法的时间复杂度是 。i=1;while (inext
5、= =NULLC. head-next= =headD. head!=NULL8. 带头结点的单链表 head 为空的判定条件是 。A. head= =NULLB. head-next= =NULLC. head-next= =headD. head!=NULL9. 非空的循环单链表 head 的尾结点(由 p 所指向)满足 。A. p-next= =NULLB. p= =NULLC. p-next= =headD. p= =head10. 在双向循环链表的 p 所指结点之后插入 s 所指结点的操作是 。A. p-right=s;s-left=p;p-right-left=s;s-right=
6、p-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-next=p-next;p-next=s;B. p-next=s-next;s-next=p;B. q-next=s;s-next=p;C
7、.p-next=s;s-next=q;12. 在一个单链表中,若 p 所指结点不是最后结点,在 p 之后插入 s 所指结点,则执行 。A. s-next=p;p-next=s;B. s-next=p-next;p-next=s;C.s-next=p-next;p=s;C. p-next=s;s-next=p;13. 在一个单链表中,若删除 p 所指结点的后续结点,则执行 。A. p-next= p-next-next;B. p= p-next;p-next= p-next-next;C. p-next= p-next;D. p= p-next-next;14. 从一个具有 n 个结点的单链表中
8、查找其值等于 x 结点时,在查找成功的情况下,需平均比较 个结点。A. nB. n/2C. (n-1)/2D. (n+1)/215. 在一个具有 n 个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是 。2A. O(1)B. O(n)C. O (n2)D. O (nlog n)16. 给定有 n 个元素的向量,建立一个有序单链表的时间复杂度是 。2A. O(1))B. O(n)C. O (n2)D. O (n*log n)2.2 填空题(将正确的答案填在相应的空中)1. 单链表可以做 的链接存储表示。2. 在双链表中,每个结点有两个指针域,一个指向 ,另一个指向 。3. 在一个单链表中
9、 p 所指结点之前插入一个 s (值为 e)所指结点时,可执行如下操作: q=head;while (q-next!=p)q=q-next; s= newNode;s-data=e;q-next= ;/填空s-next= ;/填空4. 在一个单链表中删除 p 所指结点的后继结点时,应执行以下操作: q= p-next;p-next= _;/填空delete;/填空5. 在一个单链表中 p 所指结点之后插入一个 s 所指结点时,应执行 s-next= 和 p-next= 的操作。6. 对于一个具有 n 个结点的单链表,在已知 p 所指结点后插入一个新结点的时间复杂度是 ;在给定值为 x 的结点后
10、插入一个新结点的时间复杂度是 。2.3 算法设计题:1. 设顺序表 va 中的数据元数递增有序。试写一算法,将 x 插入到顺序表的适当位置上,以保持该表的有序性。Status Insert_SqList(SqList &va,int x)if(va.length+1maxsize) return ERROR; va.length+;for(i=va.length-1;va.elemix&i=0;i-) va.elemi+1=va.elemi;va.elemi+1=x; return OK;2. 试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1, a2,. an)逆置为(an
11、, an-1,., a1)。 void reverse(int a, int size)int i,j,tmp;for(i=0, j=size-1; inext;while(q!=L & q-datanext;while(q!=L & q-datanext; 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-nex
12、t=L-next; L-next=p;p=q;q=q-next;习题答案2.11. B2. A, C3. B4. D5. C6. A7. A8. B9. C10. D11.B12.B13.A14.D15.B16.C2.21. 线性结表2. 前驱结点、后继结点3.s, p4.q-next,q5.p-next, s6.O (1), O (n)习题 3 栈和队列3.1 单项选择题1. 一个栈的入栈序列 a,b,c,d,e,则栈的不可能的输出序列是 。A. edcbaB. decbaC. dceabD. abcde2. 若已知一个栈的入栈序列是 1,2,3,n,其输出序列为 p1,p2,p3,pn,若
13、 p1=n,则 pi 为 。A. iB. n=iC. n-i+1D. 不确定3. 栈结构通常采用的两种存储结构是 。A. 顺序存储结构和链式存储结构B. 散列方式和索引方式C. 链表存储结构和数组D. 线性存储结构和非线性存储结构4. 判定一个顺序栈 ST(最多元素为 m0)为空的条件是 。A. top !=0B. top= =0C.top !=m0D. top= =m0-15. 判定一个顺序栈 ST(最多元素为 m0)为栈满的条件是 。A. top!=0B. top= =0C. top!=m0D. top= =m0-16. 栈的特点是 ,队列的特点是 。A. 先进先出B. 先进后出7. 向一
14、个栈顶指针为 HS 的链栈中插入一个 s 所指结点时,则执行 。(不带空的头结点)A. HSnext=s;B. snext= HSnext;HSnext=s;C. snext= HS;HS=s;D. snext= HS;HS= HSnext;8. 从一个栈顶指针为 HS 的链栈中删除一个结点时,用 x 保存被删结点的值,则执行 。(不带空的头结点)A. x=HS;HS= HSnext;B.x=HSdata;C. HS= HSnext; x=HSdata;D.x=HSdata; HS= HSnext;9. 一个队列的数据入列序列是 1,2,3,4,则队列的出队时输出序列是 。A. 4,3,2,1
15、B. 1,2,3,4C. 1,4,3,2D. 3,2,4,110. 判定一个循环队列 QU(最多元素为 m0)为空的条件是 。A. rear - front= =m0B. rear-front-1= =m0C. front= = rearD. front= = rear+111. 判定一个循环队列 QU(最多元素为 m0, m0= =Maxsize-1)为满队列的条件是 。A. (rear- front)+ Maxsize)% Maxsize = =m0B. rear-front-1= =m0C. front= =rearD. front= = rear+112. 循环队列用数组 A0,m-1
16、存放其元素值,已知其头尾指针分别是 front 和 rear,则当前队列中的元素个数是 。A. (rear-front+m)%mB. rear-front+1 C.rear-front-1D. rear-front13. 栈和队列的共同点是 。A. 都是先进后出B. 都是先进先出C. 只允许在端点处插入和删除元素D. 没有共同点3.2 填空题(将正确的答案填在相应的空中)1. 向量、栈和队列都是 结构,可以在向量的 位置插入和删除元素;对于栈只能在 插入和删除元素;对于队列只能在 插入元素和 删除元素。2. 向一个长度为 n 的向量的第 i 个元素(1in+1)之前插入一个元素时,需向后移动
17、个元素。3. 向一个长度为 n 的向量中删除第 i 个元素(1in)时,需向前移动 个元素。4. 在具有 n 个单元的循环队列中,队满时共有 个元素。习题答案3.11. C2. C3. A4. B5.D6. BA7.C8. B9. C10. C11. A12. A13.C3.21. 线性、任何、栈顶、队尾、队首2. n-i+13. n-i 4. n-1习题 6树和二叉树6.1 单项选择题1. 由于二叉树中每个结点的度最大为 2,所以二叉树是一种特殊的树,这种说法 。A. 正确B. 错误2. 假定在一棵二叉树中,双分支结点数为 15,单分支结点数为 30 个,则叶子结点数为 个。A15B16C1
18、7D473. 按照二叉树的定义,具有 3 个结点的不同形状的二叉树有种。A. 3B. 4C. 5D. 64. 按照二叉树的定义,具有 3 个不同数据结点的不同的二叉树有种。A. 5B. 6C. 30D. 325. 深度为 5 的二叉树至多有 个结点。A. 16B. 32C. 31D. 106. 设高度为 h 的二叉树上只有度为 0 和度为 2 的结点,则此类二叉树中所包含的结点数至少为_ 。A. 2hB. 2h-1C. 2h+1D. h+17. 对一个满二叉树,m 个树叶,n 个结点,深度为 h,则 。A. n=h+mB. h+m=2nC. m=h-1D. n=2 h-18. 任何一棵二叉树的
19、叶结点在先序、中序和后序遍历序列中的相对次序 。A.不发生改变B.发生改变C.不能确定D.以上都不对9. 如果某二叉树的前根次序遍历结果为 stuwv,中序遍历为 uwtvs,那么该二叉树的后序为 。A. uwvtsB. vwutsC. wuvtsD. wutsv10. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法 。A. 正确B. 错误11. 某二叉树的前序遍历结点访问顺序是 abdgcefh,中序遍历的结点访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是 。A. bdgcefhaB. gdbecfhaC. bdgaechfD. gdbehfca12. 在一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江 理工大学 数据结构 练习题 答案
限制150内