您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > c语言版数据结构试题及答案
数据结构习题一1/8习题一一、单选题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,则该队列最多可存储(B)个元素.A.nB.n-1C.n+1D.不确定3.下述哪一条是顺序存储方式的优点?(A)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)DA.658B.648C.633D.6535.下列关于二叉树遍历的叙述中,正确的是(AD)。A.若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点B.若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点C.若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点D.若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点6.k层二叉树的结点总数最多为(A).A.2k-1B.2K+1C.2K-1D.2k-17.对线性表进行二分法查找,其前提条件是(B).A.线性表以链接方式存储,并且按关键码值排好序B.线性表以顺序方式存储,并且按关键码值的检索频率排好序C.线性表以顺序方式存储,并且按关键码值排好序D.线性表以链接方式存储,并且按关键码值的检索频率排好序8.对n个记录进行堆排序,所需要的辅助存储空为CA.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的元素有(D)个,A.1B.2C.3D.410.下列关于数据结构的叙述中,正确的是(D).A.数组是不同类型值的集合B.递归算法的程序结构比迭代算法的程序结构更为精炼C.树是一种线性结构D.用一维数组存储一棵完全二叉树是有效的存储方法二、填空题1.数据的逻辑结构被分为_集合结构、__线性结构、_树结构和_图结构四种。2.一个算法的时间复杂度为(3n3+2000nlog2n+90)/n2,其数量级表示为___O(n)_____。3.对于一个长度为n的单链存储的队列,在表头插入元素的时间复杂度为____O(1)_____,在表尾插入元素的时间复杂度为_____O(1)_______。4.假定一棵树的广义表表示为A(D(E,G),H(I,J)),则树中所含的结点数为____7______个,树的深度为_____2______,树的度为_____2____。5.后缀算式79230+-42/*的值为_____94_____。中缀算式(3+X*Y)-2Y/3对应数据结构习题一2/8的后缀算式为___________3XY*+2Y*3/-_____。6.在一棵高度为5的理想平衡树中,最少含有__(2^(5-1))-1+1_____个结点,最多含有__(2^5)-1_____个结点。7.在树中,一个结点的直接后继结点称为该结点的________。一个结点的直接前趋结点称为该结点的________。8.在一个具有10个顶点的无向完全图中,包含有__(10*(10-1))/2______条边,在一个具有n个顶点的有向完全图中,包含有___N*(N-1)_____条边。9.假定一个线性表为(12,17,74,5,63,49,82,36),若按Key%4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为____(12,36)______、___(17,5,49)_______、_(74,82)_____________和__(63)____________。10.对一棵B_树进行删除元素的过程中,若最终引起树根结点的合并时,会使新树的高度比原树的高度______减少1(或减少_____。11.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为___O(log2n)_____,整个堆排序过程的时间复杂度为___O(nlog2n)_____。12.在线性表的散列存储中,装填因子又称为装填系数,若用m表示散列表的长度,n表示待散列存储的元素的个数,则等于____N/M____。三、运算题1.在如下数组A中链接存储了一个线性表,表头指针存放在A[0].next,试写出该线性表。A01234567data605078903440next4052713线性表为:(90,40,78,50,34,60)2.已知一棵二叉树的前序遍历的结果是ABKCDFGHIJ,中序遍历的结果是KBCDAFHIGJ,试画出这棵二叉树。当前序序列为ABKCDFGHIJ,中序序列为KBCDAFHIGJ时,逐步形成二叉树的过程如下图4所示:图43.已知一个图的顶点集V为:V={1,2,3,4,5,6,7};其共有10条边。该图用如下边集数组存储:起点1225522613终点6454767775权1122233457试用克鲁斯卡尔算法依次求出该图的最小生成树中所得到的各条边及权值。用克鲁斯卡尔算法得到的最小生成树为:(1,6)1,(2,4)1,(2,5)2,(5,7)2,(2,6)3,(3,5)74.画出向小根堆中加入数据4,2,5,8,3,6,10,1时,每加入一个数据后堆的变化。KBCDFHIGJAABKFCDHIGJABKFCDGJHIABKFCDGJHI数据结构习题一3/8见图5。图5四、阅读算法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);(1)La=(26,34,57,79,100)(2)La=(57,79,100,34)(3)La=(79,34,57,26,100)2.现面算法的功能是什么?voidABC(BTNode*BT){ifBT{coutBT-data'';ABC(BT-left);ABC(BT-right);}}444442225552288435283452834652834610513246108数据结构习题一4/8前序遍历链式存储的二叉树。五、算法填空二分查找的递归算法。IntBinsch(ElemTypeA[],intlow,inthigh,KeyTypeK){if________(low=high)___________{intmid=(low+high)/2;if(_________K==A[mid].key____________)returnmid;//查找成功,返回元素的下标elseif(KA[mid].key)returnBinsch(A,low,mid-1,K);//在左子表上继续查找elsereturn___________Binsch(A,mid+1,hight,K)__________________;//在右子表上继续查找}else_______return-1_________;//查找失败,返回-1}六、编写算法HL为单链表的表头指针,试写出在该单链表中查找具有给定的元素item的算法。boolFind(LNode*HL,ElemType&item)boolFind(LNode*HL,ElemType&item){LNode*p=HL;whilepif(p-data==item){returntrue;}elsep=p-next;returnfalse;}数据结构习题二1/8习题二一、单选题1.对一个算法的评价,不包括如下()方面的内容。A.健壮性和可读性B.并行性C.正确性D.时空复杂度2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行()。A.p-next=HL-next;HL-next=p;B.p-next=HL;HL=p;C.p-next=HL;p=HL;D.HL=p;p-next=HL;3.对线性表,在下列哪种情况下应当采用链表表示?()A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4.一个栈的输入序列为123,则下列序列中不可能是栈的输出序列的是()A.231B.321C.312D.1235.AOV网是一种()。A.有向图B.无向图C.无向无环图D.有向无环图6.采用开放定址法处理散列表的冲突时,其平均查找长度()。A.低于链接法处理冲突B.高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。A.值B.函数C.指针D.引用8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。A.行号B.列号C.元素值D.非零元素个数9.快速排序在最坏情况下的时间复杂度为()。A.O(log2n)B.O(nlog2n)C.0(n)D.0(n2)10.从二叉搜索树中查找一个元素时,其时间复杂度大致为()。A.O(n)B.O(1)C.O(log2n)D.O(n2)二、运算题1.数据结构是指数据及其相互之间的______________。当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。2.队列的插入操作是在队列的_________进行,删除操作是在队列的__________进行。3.当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈满的条件是_____________________。4.对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为_________,在表尾插入元素的时间复杂度为____________。5.设W为一个二维数组,其每个数据元素占用4个字节,行下标i从0到7,列下标j从0到3,则二维数组W的数据元素共占用_______个字节。W中第6行的元素和第4列的元素共占用_________个字节。若按行顺序存放二维数组W,其起始地址为100,则二维数组元素W[6,3]的起始地址为__________。6.广义表A=(a,(a,b),((a,b),c)),则它的深度为____________,它的长度为____________。7.二叉树是指度为2的____________________树。一棵结点数为N的二叉树,其所有结点的度的总和是_____________。8.对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个______________。对一棵由算术表达式组成的二叉语法树进行后序遍历得到的结点序列是该算术表达式的__________________。9.对于一棵具有n个结点的二叉树,用二叉链表存储时,其指针总数为_____________个,其数据结构习题二2/8中_______________个用于指向孩子,_________________个指针是空闲的。10.若对一棵完全二叉树从0开始进行结点的编号,并按此编号把它顺序存储到一维数组A中,即编号为0的结点存储到A[0]中。其余类
本文标题:c语言版数据结构试题及答案
链接地址:https://www.777doc.com/doc-3392312 .html