《数据结构》复习题.docx
- 文档编号:26158250
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:14
- 大小:55.24KB
《数据结构》复习题.docx
《《数据结构》复习题.docx》由会员分享,可在线阅读,更多相关《《数据结构》复习题.docx(14页珍藏版)》请在冰豆网上搜索。
《数据结构》复习题
选择题
1.设某二叉树中度数为0的结点数为N0,度数为1的结点数为Nl,度数为2的结点数为N2,则下列等式成立的是()。
A.N0=N1+1B.N0=Nl+N2C.N0=N2+1D.N0=2N1+l
2.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是()。
A.空或只有一个结点B.高度等于其结点数
C.任一结点无左孩子D.任一结点无右孩子
3.设有6个结点的无向图,该图至少有()条边才能确保是一个连通图。
A.5B.6C.7D.8
4. 栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素
B.都是先进后出
C.都是先进先出
D.没有共同点
5. 用链接方式存储的队列,在进行插入运算时( ).
A.仅修改头指针 B.头、尾指针都要修改
C.仅修改尾指针 D.头、尾指针可能都要修改
6. 以下数据结构中哪一个是非线性结构?
( )
A.队列 B.栈 C.线性表 D.二叉树
7. 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?
脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.696
8. 树最适合用来表示( )。
A.有序数据元素 B.无序数据元素
C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据
9. 二叉树的第k层的结点数最多为( ).
A.2k-1 B.2K+1 C.2K-1 D.2k-1
10. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )
A.1,2,3 B.9,5,2,3
C.9,5,3 D.9,4,2,3
11. 对n个记录的文件进行快速排序,所需要的辅助存储空间大致为
A.O
(1) B.O(n) C.O(1og2n) D.O(n2)
12. 对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K%9作为散列函数,则散列地址为1的元素有( )个,
A.1 B.2 C.3 D.4
13. 设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5 B.6 C.7 D.8
14.以下数据结构中哪一个是非线性结构?
()
A.队列 B.栈C.线性表 D.二叉树
15.设二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676,每个元素占一个空间,问A[3][3]存放在什么位置?
()
A.688B.678C.692D.696
16.树最适合用来表示()。
A.有序数据元素B.无序数据元素
C.元素之间具有分支层次关系的数据D.元素之间无联系的数据
17二叉树的第k层的结点数最多为()。
A.2k+1B.2K+1C.2K-1 D.2k-1
18.设某无向图具有n个顶点e条边,则该无向图中所有顶点的度数之和为()。
A.nB.eC.2nD.2e
19. 下面程序段的执行次数为:
for(i=0;i for(j=n;j state; A.n(n+2)/2B.(n-1)(n+2)/2C.n(n+1)/2D.(n-1)(n+2) 20. 一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是: A.110B.108C.100D.120 21. 一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是: A.edcbaB.decbaC.dceabD.abcde 22. 判定一个栈ST(最多元素为m0)为空的条件是: A.ST->top! =0B.ST->top=0 C.ST->top! =m0D.ST->top=m0 23. 循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是: A.(rear-front+m)%mB.read-front+1 C.read-front-1D.read-front 24.栈和队列的共同特点是()。 A.只允许在端点处插入和删除元素B.都是先进后出 C.都是先进先出D.没有共同点 25.用链接方式存储的队列,在进行插入运算时()。 A.仅修改头指针 B.头、尾指针都要修改 C.仅修改尾指针D.头、尾指针可能都要修改 26. 不带头结点的单链表head为空的判定条件是: A.head=NULLB.head->next=NULL C.head->next=headD.head! =NULL 27. 在一个单链表中,若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;D.p->next=s;s->next=p; 28. 从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较多少个结点? A.nB.n/2C.(n-1)/2D.(n+1)/2 29. 从一个栈顶指针为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; 30. 在一个连队中,假设f和r分别为队首和队尾指针,则删除一个结点的运算时: A.r=f->next;B.r=r->next;C.f=f->next;D.f=r->next; 31. 串是一种特殊的线性表,其特殊性体现在: A.可以顺序存储B.数据元素是一个字符 C.可以链接存储D.数据元素可以是多个字符 32. 设有两个串p和q,求q在p中首次出现的位置的运算称作: A.连接B.模式匹配C.求子串D.求串长 33 二维数组M的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到4,列下标j的范围从0到5,M按行存储时元素M[3][5]的起始地址与M按列存储时下列哪一元素的起始地址相同。 A.M[2][4]B.M[3][4]C.M[3][5]D.M[4][4] 34. 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为: A.SA+144B.SA+180C.SA+222D.SA+225 35. 稀疏矩阵一般的压缩方法有两种,即: A.二维数组和三维数组B.三元组和散列 C.三元组和十字链表D.散列和十字链表 36. 递归函数f(n)=f(n-1)+n(n>1)的递归出口是: A.f (1)=0B.f (1)=1C.f(0)=1D.f(n)=n 37. 将递归算法转换成对应的非递归算法时,通常需要使用: A.栈B.队列C.链表D.树 38. 广义表((a),a)的表头和表尾分别是: A.a,((a))B.(a),(a)C.b,(a)D.((a)),a 39. 在线索化二叉树中,t所指结点没有左子树的充要条件是: A.t->left=NULLB.t->ltag=1C.t->ltag=1且t->left=NULL D.以上都不对 40. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为: A.2hB.2h-1C.2h+1D.h+1 41. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是: A.acbedB.decabC.deabcD.cedba 42. 如果T2是由有序树T转换而来的二叉树,那么T中结点的后序就是T2中结点: A.前序B.中序C.后序D.层次序 43. 按照二叉树的定义,具有3个结点的二叉树有几种? A.3B.4C.5D.6 44. 树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。 这里,我们把 由树转化得到的二叉树叫做这棵树对应的二叉树。 下列结论哪个正确? A.树的先根遍历序列与其对应的二叉树的先序遍历序列相同 B.树的后根遍历序列与其对应的二叉树的后序遍历序列相同 C.树的先根遍历序列与其对应的二叉树的中序遍历序列相同 D.以上都不对 45. 在一非空二叉树的中序遍历序列中,根结点的右边 A.只有右子树上的所有结点B.只有右子树上的部分结点 C.只有左子树上的部分结点D.只有左子树上的所有结点 46. 树最适合用来表示: A.有序数据元素B.无序数据元素 C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据 47. 具有五层结点的二叉树平衡树至少有几个结点? A.10B.12C.15D.17 48. 设n,m为一棵二叉树上的两个结点,在中序遍历时,n在m前的条件是: A.n在m右方B.n是m祖先 C.n在m左方D.n是m子孙 49. 线索二叉树是一种什么结构? A.逻辑B.逻辑和存储C.物理D.线性 50. 以二叉链表作为二叉树存储结构,在具有n结点的二叉链表中(n>0),空链域的个数为: A.2n-1B.n-1C.n+1D.2n+1 51. 采用链结构存储线性表时,其地址: A.必须是连续的B.连续不连续都可以 C.部分地址必须是连续的D.必须是不连续的 52. 串的长度是: A.串中不同字符的个数B.串中不同字母的个数 C.串中所含字符的个数且字符个数大于0 D.串中所含字符的个数 53. 若数组S[1…n]作为两个栈S1和S2的存储空间,对任何一个栈,只有当[1…n]全满时才不能进行进栈操作。 为这两个栈分配空间的最佳方案是: A.S1的栈底位置为0,S2的栈底位置为n+1 B.S1的栈底位置为0,S2的栈底位置为n/2 C.S1的栈底位置为1,S2的栈底位置为n D.S1的栈底位置为1,S2的栈底位置为1 填空题 1. 算法的计算量的大小称为计算的_____。 2. 一个算法应具有_____,____,____,____和____这五个特性。 3. 数组的长度是____,线性表的长度是____。 4. 数据结构是研究数据的____和____以及他们之间的相互关系,并对这种结构定义相应的____,设计出相应的____,而确保经过这些运算后所得的新结构是____结构类型。 5. 在线性表的顺序存储中,元素之间的逻辑关系是通过____决定的;在线性表的链接存储中,元素之间的逻辑关系是通过____决定的。 6. 在双向链表中,每个结点包含两个指针域,一个指向____结点,另一个指向____结点。 7. 对于一个具有N个结点的单链表,在已知的结点*P后插入一个新结点的时间复杂度为____,在给定值为X的结点后插入一个新结点的时间复杂度为____. 8. 在一个单链表中删除*p结点时,应执行下列操作: q=p->next; p->data=p->next->data; p->next=____; free(q); 9. 设有一空桟,现有输入序列1,2,3,4,5,经push,push,pop,push,pop,push,push后,输出序列为____. 10. 无论对于顺序存储还是链接存储的桟和队列来说,进行插入或删除运算的时间复杂度均相同为____. 11. 一个字符串相等的充要条件是____和____. 12. 一维数组的逻辑结构是____,存储结构是____;对于二维或多维数组,分为按____和____两种不同的存储方式。 13. 一个广义表为(a,(a,b),d,e,((i,j)k)),则该广义表的长度为____,深度为____. 14.后缀算式923+-102/-的值为__________。 中缀算式(3+4X)-2Y/3对应的后缀算式为_______________________________。 15.AOV网是一种___________________的图。 16.在一个具有n个顶点的无向完全图中,至少包含有________条边;在一个具有n个顶点的有向完全图中,至多包含有_______________条边。 17.通常从四个方面评价算法的质量: _________、_________、_________和_________。 18.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。 19.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为__________个,树的深度为___________,树的度为_________。 20.后缀算式923+-102/-的值为__________。 中缀算式(3+4X)-2Y/3对应的后缀算式为_______________________________。 21.若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指针。 在这种存储结构中,n个结点的二叉树共有________个指针域,其中有________个指针域是存放了地址,有________________个指针是空指针。 22.通常从四个方面评价算法的质量: 、可读性、健壮性和__________。 23.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为__________。 24.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树深度为________,树的度为_________。 25.对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点分别有_______个和________个。 26.AOV网是一种___________________的图。 27.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。 28. 数组A[1..10,-2..6,2..8]以行优先的顺序存储,设第一个元素的首地址是100,每个元素占3个存储长度的存储空间,则元素A【5,0,7】的存储地址为____. 29. 假定一棵树的广义表表示为A(B(E),C(F(H,I,J),G),D),则该树的度为____,深度为____,终端结点个数为____,单分支结点个数为____,C结点的双亲结点为____,其孩子结点为____和____结点。 30. 对于一棵具有n个结点的树,该树中所有结点的度数之和为____. 31. 在一棵三叉树中,度为3的结点数有2个,度为2的结点数有1个,度为1的结点数为2个,那么度为0的结点数有____个。 32. 对于一棵含有40个结点的理想平衡树,它的高度为____. 33. 在一个堆的顺序存储中,若一个结点的下标为i,则它的左子女结点的下标为____,右子女结点的下标为____. 34. 在霍夫曼编码中,若编码长度只允许小于等于4,则除了已对两个字符编码为0和10外,还可以最多对____个字符编码。 35. 对于一棵具有n个结点的二叉树,对应二叉链表中指针总数为____个,其中____个用于指向子女结点,____个指针空闲着。 判断题 1.有向图的邻接表和逆邻接表中表结点的个数不一定相等。 2.对链表进行插入和删除操作时不必移动链表中结点。 3.子串“ABC”在主串“AABCABCD”中的位置为2。 4.在数据结构中,逻辑上可以把数据结构分为动态结构和静态结构; 5.顺序表采用的是随机存取方式,链表采用的是顺序存取方式; 6.在决定选取何种存储结构时,一般不考虑所用编程语言实现这种结构是否方便; 7.若一个叶子结点是某二叉树的中序遍历序列的最后一个结点,则它必是该二叉树的先序遍历序列中的最后一个结点。 8.用邻接矩阵作为图的存储结构时,则其所占用的存储空间与图中顶点数无关而与图中边数有关。 9.单链表形式的队列,头指针F指向队列的第一个结点,尾指针R指向队列的最后一个结点; 10.若已知二叉树的先序和后序序列,则可以唯一确定一棵二叉树。 应用题 1.请画出下图的邻接矩阵和邻接表 2.已知二叉树的前序遍历序列是AEFBGCDHIKJ,中序遍历序列是EFAGBCHKIJD,画出此二叉树,并给出它的层次遍历结果。 3.下图所示的森林: (1)求树(a)的先根序列和后根序列; (2)将树(b)转换为相应的二叉树; 4.设有无向图G,要求给出用普里姆算法构造最小生成树的过程。 5.在如下数组A中链接存储了一个线性表,表头指针为A[0].next,试写出该线性表。 A 0 1 2 3 4 5 6 7 data 60 50 78 90 34 40 next 3 5 7 2 0 4 1 6.已知一个图的顶点集V和边集E分别为: V={1,2,3,4,5,6,7}; E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25}; 用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。 7.现有稀疏矩阵M,如图 (1)画出该矩阵的三元组表示法; (2)画出该矩阵的伪地址表示法。 8.设广义表A=(a,b,c),B=(A,(c,d)),C=(a,(B,A),(e,f)),求下列各运算的结果: (1)Head(A)= (2)Tail(B)= (3)Head(Head(Head(Tail(C))))= 9.设二叉树Bt按顺序方式存储在一个一维数组中,如图 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 e a f d g c j h i b (1)画出二叉树Bt的逻辑结构; (2)画出把二叉树Bt还原成森林的图。 10.有一份电文中共使用5个字符: a,b,c,d,e,它们的出现频率依次为4、7、5、2、9,试求对应Huffman树的加权路径长度WPL,并写出每个字符的Huffman编码(请按左子树根结点的权小于等于右子树根结点的权的次序构造)。 WPL: 。 a: ;b: ;c: ; d: ;e: 。 算法分析题 1. 简述以下算法的功能(栈和队列的元素类型均为int) void algo3(Queue &Q){ Stack S; int d; InitStack(S); while(! QueueEmpty(Q)) { DeQueue(Q,d);Push(S,d); } while(! StackEmpty(S)) { Pop(S,d); EnQueue(Q,d); } } 功能为: 2.LinkListmynote(LinkListL){//L是不带头结点的单链表的头指针 if(L&&L->next){ q=L; L=L->next; p=L; S1: while(p->next)p=p->next; S2: p->next=q; q->next=NULL; } returnL; } 请回答下列问题: (1)说明语句S1的功能: 。 (2)说明语句组S2的功能: 。 (3)设链表表示的线性表为(a1,a2,…,an),算法执行后的返回值所表示的线性表为。 3.voidABC(BTNode*BT){ if(BT){ ABC(BT->left); ABC(BT->right); printf(“%d”,BT->data); } } 该算法的功能是: 。 4.下列程序段的功能实现求解“子串t在主串s中位置”的算法,请在下划线处填上正确语句。 intindex(chars[],chart[]){ i=j=0; while(i if(s[i]==t[j]){i=i+l;j=j+l;} else{ i=___i–j+1________; j=___0_____; } if(j==strlen(t))return(i–strlen(t)); elsereturn(-1); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习题