您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 数据结构练习题2及答案
数据结构练习题22012-3一、单选题(每题2分,共20分)1.在一个带有附加表头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。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.nB.n-1C.n+1D.不确定3.下述哪一条是顺序存储方式的优点?()A.存储密度大B.插入和删除运算方便C.获取符合某种条件的元素方便D.查找运算速度快4.设有一个二维数组A[m][n],假设A[0][0]存放位置在600(10),A[3][3]存放位置在678(10),每个元素占一个空间,问A[2][3](10)存放在什么位置?(脚注(10)表示用10进制表示,m3)A.658B.648C.633D.6535.下列关于二叉树遍历的叙述中,正确的是()。A.若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点。B.若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点。C.若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点。D.若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点。6.k层二叉树的结点总数最多为()。A.2k-1B.2K+1C.2K-1D.2k-17.对线性表进行二分法查找,其前提条件是()。A.线性表以链接方式存储,并且按关键码值排好序B.线性表以顺序方式存储,并且按关键码值的检索频率排好序C.线性表以顺序方式存储,并且按关键码值排好序D.线性表以链接方式存储,并且按关键码值的检索频率排好序8.对n个记录进行堆排序,所需要的辅助存储空间为A.O(1og2n)B.O(n)C.O(1)D.O(n2)9.对于线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K)=K%7作为散列函数,则散列地址为0的元素有()个,A.1B.2C.3D.410.下列关于数据结构的叙述中,正确的是()。A.数组是不同类型值的集合。B.递归算法的程序结构比迭代算法的程序结构更为精炼。C.树是一种线性结构。D.用一维数组存储一棵完全二叉树是有效的存储方法。二、填空题(每空1分,共26分)1.数据的逻辑结构被分为_______、______、_______和______四种。2.一个算法的时间复杂度为(3n3+2000nlog2n+90)/n2,其数量级表示为_____。3.对于一个长度为n的单链存储的队列,在表头插入元素的时间复杂度为______,在表尾插入元素的时间复杂度为________。4.假定一棵树的广义表表示为A(D(E,G),H(I,J)),则树中所含的结点数为_____个,树的深度为______,树的度为______。5.后缀算式79230+-42/*的值为______。中缀算式(3+X*Y)-2Y/3对应的后缀算式为_______。6.在一棵高度为5的理想平衡树中,最少含有____个结点,最多含有____个结点。7.在树中,一个结点的直接后继结点称为该结点的_____。一个结点的直接前趋结点称为该结点的____。8.在一个具有10个顶点的无向完全图中,包含有____条边,在一个具有n个顶点的有向完全图中,包含有_____条边。9.假定一个线性表为(12,17,74,5,63,49,82,36),若按Key%4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为________、_________、__________和__________。10.对一棵B_树进行删除元素的过程中,若最终引起树根结点的合并时,会使新树的高度比原树的高度_______。1.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为____,整个堆排序过程的时间复杂度为______。2.在线性表的散列存储中,装填因子又称为装填系数,若用m表示散列表的长度,n表示待散列存储的元素的个数,则等于____。三、简答题(每题6分,共24分)1.在如下数组A中链接存储了一个线性表,表头指针存放在A[0].next,试写出该线性表。data605078903440next4052713A012345672.已知一棵二叉树的前序遍历的结果是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的类型为List,元素类型ElemType为int,并假定每个程序段是连续执行的。试写出每个程序段执行后所得到的线性表La。(1)InitList(La);Inta[]={100,26,57,34,79};for(i=0;i5;i++)Insert(La,a[i]);TraverseList(La);(2)DeleteFront(La);InsertRear(La,DeleteFront(La));TraverseList(La);(3)ClearList(La);For(i=0;i5;i++)InsertFront(La,a[i]);TraverseList(La);(4)现面算法的功能是什么?voidABC(BTNode*BT){if(BT){coutBT-data'';ABC(BT-left);ABC(BT-right);}}五、算法填空(共8分)二分查找的递归算法。IntBinsch(ElemTypeA[],intlow,inthigh,KeyTypeK){if(____________){intmid=(low+high)/2;if(_________)returnmid;//查找成功,返回元素的下标elseif(KA[mid].key)returnBinsch(A,low,mid-1,K);//在左子表上继续查找elsereturn__________;//在右子表上继续查找}else________________;//查找失败,返回-1}六、编写算法(共8分)HL为单链表的表头指针,试写出在该单链表中查找具有给定的元素item的算法。boolFind(LNode*HL,ElemType&item)参考答案一、单选题(每题2分,共20分)1.B2.B3.A4.D5.A6.A7.C8.C9.D10.D二、填空题(每空1分,共26分)1.集合结构线性结构树结构图结构2.O(n)3.O(1)O(1)4.7325.943XY*+2Y*3/-6.16317.孩子(或子)结点双亲(或父)结点8.45n(n-1)9.(12,36)(17,5,49)(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所示:图43.用克鲁斯卡尔算法得到的最小生成树为:(1,6)1,(2,4)1,(2,5)2,(5,7)2,(2,6)3,(3,5)74.见图5。图5四、读算法(每题7分,共14分)1.(1)La=(26,34,57,79,100)(2)La=(57,79,100,34)KBCDFHIGJAABKFCDHIGJABKFCDGJHIABKFCDGJHI444442225552288435283452834652834610513246108(3)La=(79,34,57,26,100)2.前序遍历链式存储的二叉树。五、算法填空(每空2分,共8分)(low=high)K==A[mid].keyBinsch(A,mid+1,hight,K)return-1六、编写算法(8分)boolFind(LNode*HL,ElemType&item){LNode*p=HL;while(p){if(p-data==item)returntrue;elsep=p-next;}returnfalse;}
本文标题:数据结构练习题2及答案
链接地址:https://www.777doc.com/doc-2429482 .html