《《数据结构》模拟试卷二及答案(共7页).doc》由会员分享,可在线阅读,更多相关《《数据结构》模拟试卷二及答案(共7页).doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上模拟试卷二一、 单选题(每题 2 分,共20分)1. 在一个带有附加表头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行(B )。 A. HL=p; p-next=HL; B. p-next=HL-next; HL-next=p; C. p-next=HL; p=HL; D. p-next=HL; HL=p; 2. 若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储(A B )个元素. A. n B.n-1 C. n+1 D.不确定3. 下述哪一条是顺序存储方式的优点?(C A ) A存储密度大 B.插入和删除运算方便 C. 获取符
2、合某种条件的元素方便 D.查找运算速度快4. 设有一个二维数组Amn,假设A00存放位置在600(10),A33存放位置在678(10),每个元素占一个空间,问A23(10)存放在什么位置?(脚注(10)表示用10进制表示,m3) BD A658 B648 C633 D653 3m+3=78 m=255. 下列关于二叉树遍历的叙述中,正确的是( DA ) 。A. 若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点B若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点 C若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树
3、的前序最后一个结点 D若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点6. k层二叉树的结点总数最多为( A ). A2k-1 B.2K+1 C.2K-1 D. 2k-17. 对线性表进行二分法查找,其前提条件是( ).A. 线性表以链接方式存储,并且按关键码值排好序 B. 线性表以顺序方式存储,并且按关键码值的检索频率排好序C. 线性表以顺序方式存储,并且按关键码值排好序D. 线性表以链接方式存储,并且按关键码值的检索频率排好序8. 对n个记录进行堆排序,所需要的辅助存储空间为 A. O(1og2n) B. O(n) C. O(1) D. O(n2)9. 对于线
4、性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K)=K %7作为散列函数,则散列地址为0的元素有( )个, A1 B2 C3 D410. 下列关于数据结构的叙述中,正确的是( D ).A. 数组是不同类型值的集合 B. 递归算法的程序结构比迭代算法的程序结构更为精炼C. 树是一种线性结构D. 用一维数组存储一棵完全二叉树是有效的存储方法二、 填空题(每空1分,共26分)1. 数据的逻辑结构被分为_、_、_和_四种。2. 一个算法的时间复杂度为(3n3+2000nlog2n+90)/n2,其数量级表示为_。3. 对于一个长度为n的单链存储的队列,在表头插入元素的时
5、间复杂度为_,在表尾插入元素的时间复杂度为_。4. 假定一棵树的广义表表示为A(D(E,G),H(I,J),则树中所含的结点数为_个,树的深度为_,树的度为_。5. 后缀算式79 2 30 + - 4 2 / *的值为_。中缀算式(3+X*Y)-2Y/3对应的后缀算式为_。6. 在一棵高度为5的理想平衡树中,最少含有_个结点,最多含有_个结点。7. 在树中,一个结点的直接后继结点称为该结点的_。一个结点的直接前趋结点称为该结点的_。8. 在一个具有10个顶点的无向完全图中,包含有_条边,在一个具有n个顶点的有向完全图中,包含有_条边。9. 假定一个线性表为(12,17,74,5,63,49,8
6、2,36),若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为_、_、_和_。10. 对一棵B_树进行删除元素的过程中,若最终引起树根结点的合并时,会使新树的高度比原树的高度_。11. 在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为_,整个堆排序过程的时间复杂度为_。12. 在线性表的散列存储中,装填因子a又称为装填系数,若用m表示散列表的长度,n表示待散列存储的元素的个数,则a等于_。三、 运算题(每题 6 分,共24分)1 在如下数组A中链接存储了一个线性表,表头指针存放在A 0.next,试写出该线性表。 A 0 1 2 3 4 5 6 7
7、data605078903440next40527132 已知一棵二叉树的前序遍历的结果是ABKCDFGHIJ, 中序遍历的结果是KBCDAFHIGJ, 试画出这棵二叉树。3 已知一个图的顶点集V为: V=1,2,3,4,5,6,7; 其共有10条边。该图用如下边集数组存储:起点1225522613终点6454767775权1122233457试用克鲁斯卡尔算法依次求出该图的最小生成树中所得到的各条边及权值。4 画出向小根堆中加入数据4, 2, 5, 8, 3, 6, 10, 1时,每加入一个数据后堆的变化。四、 阅读算法(每题7分,共14分)1. 在下面的每个程序段中,假定线性表La的类型为
8、List,元素类型ElemType为int,并假定每个程序段是连续执行的。试写出每个程序段执行后所得到的线性表La。(1) InitList(La); Int a=100,26,57,34,79; For (i=0;i5;i+) Insert(La,ai); TraverseList(La);(2) DeleteFront(La);InsertRear(La, DeleteFront(La); TraverseList(La);(3) ClearList(La); For (i=0;i5;i+) InsertFront(La,ai); TraverseList(La);2. 现面算法的功能是什
9、么?void ABC(BTNode * BT) if BT coutdataleft); ABC(BT-right); 五、 算法填空(共8分)二分查找的递归算法。 Int Binsch(ElemType A,int low,int high,KeyType K) if _ int mid=(low+high)/2; if (_) return mid; /查找成功,返回元素的下标 else if (KAmid.key) return Binsch(A,low,mid-1,K); /在左子表上继续查找 else return_; /在右子表上继续查找 else _; /查找失败,返回-1 六、
10、 编写算法(共8分)HL为单链表的表头指针,试写出在该单链表中查找具有给定的元素item的算法。bool Find(LNode* HL, ElemType &item)模拟试卷二参考答案一、 单选题(每题2分,共20分)1.B 2.B 3.A 4.D 5.A 6.A 7.C 8.C 9.D 10.D二、 填空题(每空1分,共26分)1. 集合结构 线性结构 树结构 图结构2. O(n)3. O(1) O(1)4. 7 3 25. 94 3 X Y * + 2 Y * 3 / -6. 16 317. 孩子(或子)结点 双亲(或父)结点8. 45 n(n-1)9. (12,36) (17,5,49
11、) (74,82) (63)10. 减少1(或减少)11. O(log2n) O(nlog2n)12. n/m三、 运算题(每题6分,共24分)1. 线性表为:(90,40,78,50,34,60)2. 当前序序列为ABKCDFGHIJ,中序序列为KBCDAFHIGJ时,逐步形成二叉树的过程如下图4所示: FHIGJAABKFCDHIGJABKFCDGJHIABKFCDGJHIKBCD图43. 用克鲁斯卡尔算法得到的最小生成树为: (1,6)1, (2,4)1, (2,5)2, (5,7)2, (2,6)3, (3,5)74. 见图5。42444225552288435283465283461
12、0513246108528344图5四、 阅读算法(每题7分,共14分)1. (1) La=(26,34,57,79,100) (2)La=(57,79,100,34) (3)La=(79,34,57,26,100) 2. 前序遍历链式存储的二叉树。五、 算法填空(每空2分,共8 分)(lowdata=item) return true; else p=p-next; return false;模拟试卷二七、 单选题(每题 2 分,共20分)11. 在一个带有附加表头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。 A. HL=p; p-next=HL; B. p-ne
13、xt=HL-next; HL-next=p; C. p-next=HL; p=HL; D. p-next=HL; HL=p; 12. 若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储( )个元素. A. n B.n-1 C. n+1 D.不确定13. 下述哪一条是顺序存储方式的优点?( ) A存储密度大 B.插入和删除运算方便 C. 获取符合某种条件的元素方便 D.查找运算速度快14. 设有一个二维数组Amn,假设A00存放位置在600(10),A33存放位置在678(10),每个元素占一个空间,问A23(10)存放在什么位置?(脚注(10)表示用10进制表示,m3) A
14、658 B648 C633 D65315. 下列关于二叉树遍历的叙述中,正确的是( ) 。A. 若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点B若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点 C若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点 D若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点16. k层二叉树的结点总数最多为( ). A2k-1 B.2K+1 C.2K-1 D. 2k-117. 对线性表进行二分法查找,其前提条件是( ).E. 线性表以链接方
15、式存储,并且按关键码值排好序 F. 线性表以顺序方式存储,并且按关键码值的检索频率排好序G. 线性表以顺序方式存储,并且按关键码值排好序H. 线性表以链接方式存储,并且按关键码值的检索频率排好序18. 对n个记录进行堆排序,所需要的辅助存储空间为 A. O(1og2n) B. O(n) C. O(1) D. O(n2)19. 对于线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K)=K %7作为散列函数,则散列地址为0的元素有( )个, A1 B2 C3 D420. 下列关于数据结构的叙述中,正确的是( ).E. 数组是不同类型值的集合 F. 递归算法的程序结构
16、比迭代算法的程序结构更为精炼G. 树是一种线性结构H. 用一维数组存储一棵完全二叉树是有效的存储方法八、 填空题(每空1分,共26分)13. 数据的逻辑结构被分为_、_、_和_四种。14. 一个算法的时间复杂度为(3n3+2000nlog2n+90)/n2,其数量级表示为_。15. 对于一个长度为n的单链存储的队列,在表头插入元素的时间复杂度为_,在表尾插入元素的时间复杂度为_。16. 假定一棵树的广义表表示为A(D(E,G),H(I,J),则树中所含的结点数为_个,树的深度为_,树的度为_。17. 后缀算式79 2 30 + - 4 2 / *的值为_。中缀算式(3+X*Y)-2Y/3对应的
17、后缀算式为_。18. 在一棵高度为5的理想平衡树中,最少含有_个结点,最多含有_个结点。19. 在树中,一个结点的直接后继结点称为该结点的_。一个结点的直接前趋结点称为该结点的_。20. 在一个具有10个顶点的无向完全图中,包含有_条边,在一个具有n个顶点的有向完全图中,包含有_条边。21. 假定一个线性表为(12,17,74,5,63,49,82,36),若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为_、_、_和_。22. 对一棵B_树进行删除元素的过程中,若最终引起树根结点的合并时,会使新树的高度比原树的高度_。23. 在堆排序的过程中,对任一分支结
18、点进行筛运算的时间复杂度为_,整个堆排序过程的时间复杂度为_。24. 在线性表的散列存储中,装填因子a又称为装填系数,若用m表示散列表的长度,n表示待散列存储的元素的个数,则a等于_。九、 运算题(每题 6 分,共24分)5 在如下数组A中链接存储了一个线性表,表头指针存放在A 0.next,试写出该线性表。 A 0 1 2 3 4 5 6 7 data605078903440next40527136 已知一棵二叉树的前序遍历的结果是ABKCDFGHIJ, 中序遍历的结果是KBCDAFHIGJ, 试画出这棵二叉树。7 已知一个图的顶点集V为: V=1,2,3,4,5,6,7; 其共有10条边。
19、该图用如下边集数组存储:起点1225522613终点6454767775权1122233457试用克鲁斯卡尔算法依次求出该图的最小生成树中所得到的各条边及权值。8 画出向小根堆中加入数据4, 2, 5, 8, 3, 6, 10, 1时,每加入一个数据后堆的变化。十、 阅读算法(每题7分,共14分)3. 在下面的每个程序段中,假定线性表La的类型为List,元素类型ElemType为int,并假定每个程序段是连续执行的。试写出每个程序段执行后所得到的线性表La。(4) InitList(La); Int a=100,26,57,34,79; For (i=0;i5;i+) Insert(La,a
20、i); TraverseList(La);(5) DeleteFront(La);InsertRear(La, DeleteFront(La); TraverseList(La);(6) ClearList(La); For (i=0;i5;i+) InsertFront(La,ai); TraverseList(La);4. 现面算法的功能是什么?void ABC(BTNode * BT) if BT coutdataleft); ABC(BT-right); 十一、 算法填空(共8分)二分查找的递归算法。 Int Binsch(ElemType A,int low,int high,Key
21、Type K) if _ int mid=(low+high)/2; if (_) return mid; /查找成功,返回元素的下标 else if (KAmid.key) return Binsch(A,low,mid-1,K); /在左子表上继续查找 else return_; /在右子表上继续查找 else _; /查找失败,返回-1 十二、 编写算法(共8分)HL为单链表的表头指针,试写出在该单链表中查找具有给定的元素item的算法。bool Find(LNode* HL, ElemType &item)模拟试卷二参考答案七、 单选题(每题2分,共20分)1.B 2.B 3.A 4.
22、D 5.A 6.A 7.C 8.C 9.D 10.D八、 填空题(每空1分,共26分)13. 集合结构 线性结构 树结构 图结构14. O(n)15. O(1) O(1)16. 7 3 217. 94 3 X Y * + 2 Y * 3 / -18. 16 3119. 孩子(或子)结点 双亲(或父)结点20. 45 n(n-1)21. (12,36) (17,5,49) (74,82) (63)22. 减少1(或减少)23. O(log2n) O(nlog2n)24. n/m九、 运算题(每题6分,共24分)5. 线性表为:(90,40,78,50,34,60)6. 当前序序列为ABKCDFG
23、HIJ,中序序列为KBCDAFHIGJ时,逐步形成二叉树的过程如下图4所示: FHIGJAABKFCDHIGJABKFCDGJHIABKFCDGJHIKBCD图47. 用克鲁斯卡尔算法得到的最小生成树为: (1,6)1, (2,4)1, (2,5)2, (5,7)2, (2,6)3, (3,5)78. 见图5。424442255522884352834652834610513246108528344图5十、 阅读算法(每题7分,共14分)3. (1) La=(26,34,57,79,100) (2)La=(57,79,100,34) (3)La=(79,34,57,26,100) 4. 前序遍历链式存储的二叉树。十一、 算法填空(每空2分,共8 分)(lowdata=item) return true; else p=p-next; return false;专心-专注-专业