数据结构总复习.docx
- 文档编号:23837445
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:28
- 大小:253.73KB
数据结构总复习.docx
《数据结构总复习.docx》由会员分享,可在线阅读,更多相关《数据结构总复习.docx(28页珍藏版)》请在冰豆网上搜索。
数据结构总复习
1.在逻辑上可以把数据结构分成:
()。
A.动态结构和静态结构B.紧凑结构和非紧凑结构
C.线性结构和非线性结构D.内部结构和外部结构
2.L是线性表,已知LengthList(L)的值是5,经DelList(L,2)运算后,LengthList(L)的值是()。
A.2B.3C.4D.5
3.在数据结构中,与所使用的计算机无关的是()。
A、物理结构B、存储结构C、逻辑结构D、逻辑和存储结构
4.下面程序段的时间复杂度为()。
for(inti=0;i for(intj=0;j a[i][j]=i*j; A、O(m2)B、O(n2)C、O(m*n)D、O(m+n) 5.执行下面程序段时,执行T语句的次数为()。 for(inti=1;i<=n;i++) for(intj=1;j<=n;j++) T; A、n2B、n2/2C、n(n+1)D、n(n+1)/2 6.以下算法的时间复杂度为()。 voidfun(intn) {inti=1; while(i<=n) i=i*3; } A.O(n)B.O(n2)C.O(log2n)D.O(log3n) 6.下列程序段的时间复杂度是()。 ①i=1; while(i<=n) ②i=i*2 A、O(log2n)B、O(n)C、O(nlog2n)D、O(n2) 7.在一个链队中,假设f和r分别为队首和队尾指针,删除一个结点的运算是()。 A、r=f—>next B、r=r—>next C、f=f—>next D、f=r—>next 8.设有编号为1,2,3,4的四辆列车,顺序进入一个栈结构的站台,下列不可能的出站顺序为() A.1234B.1243C.1324D.1423 9.某算法的时间代价为T(n)=300n+20nLog2n+10n2,其时间复杂度为()。 A、O(n)B、O(nlog2n)C、O(n2)D、O (1) 10.用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为()。 A、O(n) B、O(log2n) C、O(n2) D、O (1) 11.一组记录的排序码为(25,48,16,35,79,82,23,40),其中含有4个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为: ()。 A,16253548234079823672B.16253548798223364072 C.16254835798223364072D.16253548792336407282 12.二分查找有序表{4,6,10,12,20,30,50,70,88,100},若查找表中元素58,则它将依次与表中()比较大小,查找结果是失败。 A.30,88,70,50B.20,70,30,50C.20,50D.30,88,50 13.若串S=“software”,其真子串的个数是()。 A.8B.37C.36D.9 14.二分查找有序表{4,6,10,12,20,30,50,70,88,100},若查找表中元素58,则它将依次与表中()比较大小,查找结果是失败。 A.30,88,70,50B.20,70,30,50C.20,50D.30,88,50 15.用链表表示线性表的优点是()。 A、便于随机存取B、花费的存储空间较顺序存储少 C、便于插入和删除D、数据元素的物理顺序与逻辑顺序相同 16.以下论述正确的是()。 A.空串与空格串是相同的B."tel"是"Teleptone"的子串 C.空串是零个字符的串D.空串的长度等于1 17.对于一个具有N个顶点的图,如果我们采用邻接矩阵法表示,则此矩阵的维数应该是()。 A、(N-1)×(N-1) B、N×N C、(N+1)×(N+1) D、不确定 18.在有n个叶子结点的哈夫曼树中,其结点总数为()。 A、不确定B、2nC、2n+1D、2n-1 19.以下序列不是堆的是() A、{100,85,98,77,80,60,82,40,20,10,66} B、{100,98,85,82,80,77,66,60,40,20,10} C、{10,20,40,60,66,77,80,82,85,98,100} D、{100,85,40,77,80,60,66,98,82,10,20} 20.下列4棵树中,()不是完全二叉树。 A.B.C.D. 21.下面关于图的存储结构的叙述中正确的是()。 A、用邻接矩阵存储图,占用空间大小只与图中顶点数有关,而与边数无关 B、用邻接矩阵存储图,占用空间大小只与图中边数有关,而与顶点数无关 C、用邻接表存储图,占用空间大小只与图中顶点数有关,而与边数无关 D、用邻接表存储图,占用空间大小只与图中边数有关,而与顶点数无关 22.设有一个顺序栈S,元素A,B,C,D,E,F,依次进栈,如果六个元素出栈的顺序是B,D,C,F,E,A,则栈的容量至少应是()。 A.3B.4C.5D.6 23.如下图所示,从顶点a出发,按广度优先进行遍历,则可能得到的一种顶点序列为()。 A.a,b,e,c,d,f B.a,b,e,c,f,d C.a,e,b,c,f,d D.a,e,d,f,c,b 24.对稀疏矩阵进行压缩存储是为了()。 A.降低运算时间B.节约存储空间 C.便于矩阵运算D.便于输入和输出 25.用5个权值{3,2,4,5,1}构造的哈夫曼树的带权路径长度是()。 A.32B.33C.34D.15 26.设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为()。 A、40,50,20,95B、15,40,60,20 C、15,20,40,45D、45,40,15,20 27.设一组初始记录关键字序列为(45,80,55,40,42,85),则以第一个记录关键字45为基准而得到一趟快速排序的结果是()。 A、40,42,45,55,80,83B、42,40,45,80,85,88 C、42,40,45,55,80,85D、42,40,45,85,55,80 28.设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为()。 A、15,25,35,50,20,40,80,85,36,70 B、15,25,35,50,80,20,85,40,70,36 C、15,25,35,50,80,85,20,36,40,70 D、15,25,35,50,80,20,36,40,70,85 29.最短路径的生成算法可用()。 A、普里姆算法B、克鲁斯卡尔算法C、迪杰斯特拉算法D、哈夫曼算法 30无向图的邻接矩阵是一个()。 A.对称矩阵B.零矩阵C.上三角矩阵D.对角矩阵 31.一个有序顺序表有255个对象,采用顺序搜索法查表,成功平均搜索长度为()。 A、128B、127C、126D、255 32.设输入序列是1、2、3、……、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是()。 A、n-iB、n-1-iC、n+1-iD、不能确定 33.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。 插入一个元素时平均要移动表中的()个元素。 A、n/2B、(n+1)/2C、(n-1)/2D、n 34、设环形队列中数组的下标为0~N-1,其队头、队尾指针分别为front和rear(front指向队列中队头元素的前一个位置,rear指向队尾元素的位置),则其元素个数为()。 A.rear-frontB.rear-front-1 C.(rear-front)%N+1D.(rear-front+N)%N 35.经过下列栈的运算后,SEmpty(s)的值是()。 InitStack(s)(初始化栈);Push(s,a);Push(s,b);Pop(s,x);Pop(s,x); A.aB.bC.1D.0 36.中缀表达式a*(b+c)-d的对应的后缀表达式是()。 A.abcd*+-B.abc+*d-C.abc*+d-D.-+*abcd 37.中缀表达式“2*(3+4)-1”的后缀表达式是(),其中#表示一个数值的结束。 A.2#3#4#1#*+-B.2#3#4#+*1#- C.2#3#4#*+1#-D.-+*2#3#4#1# 38.用直接插入排序法对下面的四个序列进行由小到大的排序,元素比较次数最少的是()。 A,94,32,40,90,80,46,21,69B.21,32,46,40,80,69,90,94 C.32,40,21,46,69,94,90,80D.90,69,80,46,21,32,94,40 39.堆的形状是一棵_______。 A.满二叉树B.二叉判定树C.平衡二叉树D.完全二叉树 40.对于一个具有n个顶点的有向图的边数最多有()。 A.nB.n(n-1)C.n(n-1)/2D.2n 41.不可能生成下图二叉排序树的关键字的序列是()。 A.45312B.42531C.45213D.42315 42.函数substr(“DATASTRUCTURE”,5,9)的返回值为()。 A、“STRUCTURE”B、“DATA” C、“ASTRUCTUR”D、“DATASTRUCTURE” 43.有64个结点的完全二叉树的深度为()(根的层次为1)。 A、8 B、7 C、6 D、5 44.具有n(n>1)个结点的完全二叉树中,结点i(2i>n)的左孩子结点是()。 A.2iB.2i+1C.2i-1D.不存在 45.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点编号,根结点的编号为1,则编号为45的结点的左孩子编号为()。 A.46B.47C.90D.91 46.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。 A、25B、10C、7D、1 47.如下图所示,从顶点a出发,按深度优先进行遍历,则可能得到的一种顶点序列为()。 A.a,b,e,c,d,f B.a,c,f,e,b,d C.a,e,b,c,f,d D.a,e,d,f,c,b 48.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的()倍。 A.1/2B.1C.2D.4 49.在一棵具有五层的满二叉树中,结点的总数为() A.16】B.31C.32D.33 50.有拓扑排序的图一定是()。 A、有环图B、无向图C、强连通图D、有向无环图 51.下列()不是利用查找表中数据元素的关系进行查找的方法。 A.平衡二叉树B.有序表的查找 C.散列查找D.二叉排序树的查找 1.数据结构通常有下列4类基本结构: 集合、(线性结构)、树型结构、图型结构 2.数据的基本单位是(数据元素),最小单位是(数据项). 3.两个串是相等的,当且仅当两个串的长度相等且(各对应位置)的字符都相同。 4.一棵度为3的树中,有3度结点100个,有2度结点200个,那么叶子结点的个数401。 5.在具有n个存储单元的队列中,队满时队中共有(n)个元素。 6.若一棵二叉树有1001个结点,且度数为1的结点数为0,则叶子结点的个数___501__。 7.已知元素入栈先后为ABCDE,若C为第一个出栈元素,则下一个出栈的元素可能B、D、E。 8.设有向图G中有n个顶点e条有向边,所有的顶点入度数之和为d,则e和d的关系为(e=d)。 9.假设有一个顺序栈A,其中元素a1,a2,a3,a4,a5,a6依次进栈,如果已知六个元素出栈 的顺序是a2,a3,a4,a6,a5,a1,则此栈容量至少应该为3。 10.有20个结点的完全二叉树,编号为10的结点的父结点的编号是5。 11.一个连通图的生成树是一个极大连通子图,n个顶点的生成树有n-1条边。 12.设循环队列的容量为40(序号从0到39),现经过一系列的入队和出队运算后,有front=11,rear=19,则循环队列中还有8个元素。 13.在如下图所示的网络计划图中关键路径是(11,13,16,17), 全部计划完成的时间是19。 14.将一个N阶矩阵A的上三角部分按行优压缩存放于一个一维数组B中,A[0][0]存放 于B[0]中,则A[i][j]在i<=j时将存放于数组B的(i(2n-i+1)/2+j-i)位置 15.各结点左右子树深度之差的绝对值至多为1的二叉树称谓平衡二叉树。 16.对于长度为n的线性表,若采用二分查找,则时间复杂度为: O(log2n)。 17.每次使两个相邻有序表合并成一个有序的排序方法叫做(二路归并)排序。 18.求子串函数SubStr("Todayis30July,2005",13,4)的结果是: July。 19.设S="MyMusic",则LenStr(s)=_8。 1.已知模式串pat=’abcabaa’,写出该模式串的next函数值和nextval值。 下标 0 1 2 3 4 5 6 关键字 a b c a b a a next -1 0 0 0 1 2 1 nextval -1 0 0 -1 0 2 1 2、已知模式串pat=“abaabc”,写出该模式串的next函数值和nextval值; 下标 0 1 2 3 4 5 关键字 a b a a b c next -1 0 0 1 1 2 nextval -1 0 -1 1 0 2 3、给出字符串‘abacabaaad’在KMP算法中的next和nextval数组。 下标 0 1 2 3 4 5 6 7 8 9 关键字 a b a c a b a a a d next -1 0 0 1 0 1 2 3 1 1 nextval -1 0 -1 1 -1 0 -1 3 1 1 4.已知模式串pat=’abaabaab’,写出该模式串的next函数值和nextval值; 下标 0 1 2 3 4 5 6 7 关键字 a b a a b a a b next -1 0 0 1 1 2 3 4 nextval -1 0 -1 1 0 -1 1 0 5.已知一棵二叉树的后序遍历和中序遍历的序列分别为: ACDBGIHFE和ABCDEFGHI。 请画出该二叉树,并写出它的前序遍历的序列。 EBADCFEHGI 6.已知一棵二叉树的前序遍历和中序遍历的序列分别为: ABDGHCEFI和GDHBAECIF。 请画出此二叉树,并写出它的后序遍历的序列。 GHDBEIFCA 7、假定一棵二叉树的括号表示为A(B(,D(G)),C(E,F)),请分别写出对它的先序、中序、层次的遍历序列。 ABDGCEFBGDAECFGDBEFCA 8.已知某二叉树的先序遍历次序为: abcdefg,中序遍历次序为: badfegc,画出该二叉树,并在该二叉树上建立中序线索。 9、已知一棵度为3的树中,有度数为3的结点100个,度数为2的结点200个,求叶子结点的个数,并给出推导过程。 n=n0+n1+n2+n3 n=0*n0+1*n1+2*n2+3*n3+1 n0+n2+n3=2*n2+3*n3+1 n0=401 10、.一棵二叉排序树的结构如图1所示,其中各结点的关键字依次为32~40,请标出各结点的关键字。 11.数组元素a[0..2][0..3]的首地址为2000,元素长度是4,求LOC[1,2]。 2000+6*4=2024 12.广义表LS=(a,(b),((c,(d))))求: 表头,表尾,长度,深度。 a((b),((c,(d))))34 13.已知二维数组A[6][10],每个数组元素占4个存储单元,若按行优先顺序存放数组元素a[3][5]的存储地址是1000,求a[0][0]的存储地址? (写出公式计算过程)。 a[3][5]前共有元素个数=3*10+5=35 a[0][0]的存储地址=1000-35*4=860 14已知广义表LS=((a,b),c,(d,(e,f),g))求: 表头,表尾,长度,深度。 (a,b)(c,(d,(e,f),g))33 15、画出广义表LS=((),(e),(a,(b,c,d)))的头尾链表存储结构。 LS-> 1.设单链表的结点的结构为ListNode=(data,link),阅读下面的函数,指出它所实现的功能是什么。 Intunknown(ListNode*Ha) {Intn=0; ListNode*p=Ha->link; While(p) { n++; p=p->next; } Return(n); } 计算单链表长度 2.对于顺序表L,指出以下算法的功能。 voidfun(SqList*&L) {inti,j=0; for(i=1;i if(L->data[i]>L->data[j]) j=i; for(i=j;i L->data[i]=L->data[i+1]; L->length--; } 找最大值位置并且把最大值删除 3.写结果 main() {StackS; charx,y; S.InitStack(); X=’c’;y=’k’; S.Push(x);S.Push(‘a’);S.Push(y); S.Pop(S,x);S.Push(‘t’);S.Push(‘s’); while(! S.IsEmpty()) {S.Pop(S,x); printf(“%c”,x);} printf(“%c”,y); }stack 4假设二叉树采用二叉链存储结构存储,设计一个递归算法,计算一棵给定二叉树的所有结点个数。 intNodesCount(BTNode*b) { if(b==NULL) return0; else returnNodesCount(b->lchild)+NodesCount(b->rchild)+1; } 5求二叉树高度的算法.(递归) intBTHeight(BTNode*b) { intlchild,rchild; if(b==NULL)return(0); else{ lchild=BTHeight(b->lchild); rchild=BTHeight(b->rchild); return(lchild>rchild)? (lchild+1): (rchild+1); } } 6、编写在一有序顺序表中插入数据元素X的算法INSERT(L,X) voidINSERT(SqList&L,ElemTypeX){ inti=0; while(x ++i; for(intj=L.length-1;j>=i;j--) L.data[j+1]=data[j]; L.data[i]=x; L.length++; } 7.假设二叉树采用二叉链存储结构存储,设计一个递归算法,输出给定二叉树的所有叶子结点。 voidDispLeaf(BTNode*b){ if(b! =NULL){ if(b->lchild==NULL&&b->rchild==NULL) printf(“%c”,b->data); DispLeaf(b->lchild); DispLeaf(b->rchild); } } 1.假设用于通信的电文仅由A、B、C、D、E、F、G8个字母组成,字母在电文中出现的频率分别为7,19,2,6,32,3,21,10。 试为这8个字母设计哈夫曼树及哈夫曼编码。 A: 1010,B: 00,C: 10000,D: 1001,E: 11,F: 10001,G: 01,H: 1011 2、对于下图所示的带权无向图,给出利用普里姆算法(从顶点0开始构造)和克鲁斯卡尔算法构造出的最小生成树,并按求解的顺序给出最小生成树的所有边,每条边用(i,j)表示)。 {(0,1),(0,3),(1,2),(2,5),(5,4)} {(0,1),(0,3),(1,2),(4,5),(2,5)} 3、网G的图形如下,试写出邻接矩阵,并画出它的一棵最小生成树。 邻接矩阵: 0 8 10 11 ∞ 8 0 3 ∞ 13 10 3 0 4 ∞ A= 11 ∞ 4 0 7 ∞ 13 ∞ 7 0 {(2,3),(3,4),(4,5),(2,1)} 4、已知某二叉树的中序和后序遍历序列分别为BFDJGACHKEI和FJGDBKHIECA, (1)请画出该二叉树。 (2)树的深度是多少? 5 (3)给出该二叉树的先序遍历序列。 ABDFGJCEHKI 5、把下列森林转换为二叉树(写出过程) ①②③ 6.带权无向图G(顶点分别为V1,V2,V3,V4,V5,V6)的邻接矩阵是A v1v2v3v4v5v6 0 6 ∞ ∞ 6 3 6 0 5 ∞ ∞ 4 ∞ 5 0 6 ∞ ∞
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习