《数据结构》模拟试卷三
数据结构模拟试卷及参考答案

数据结构模拟试卷(一)及参考答案一.单项选择题(本大题共15小题,每小题2分,共30分)1.如果只想得到1024个元素组成的序列中的前5个最小元素,那么用( A )方法最快。
A、起泡排序B、快速排序C、堆排序D、直接选择排序2.算法分析的目的是(B)A.辨别数据结构的合理性B.评价算法的效率C.研究算法中输入与输出的关系D.鉴别算法的可读性3.在线性表的下列运算中,不改变数据元素之间结构关系的运算是(C)A.插入B.删除C.定位D.排序4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为(D)A.3,2,6,1,4,5 B.5,6,4,2,3,1C.1,2,5,3,4,6 D.3,4,2,1,6,55.设串sl=″DataStructureswithJava″,s2=″it″,则子串定位函数index(s1,s2)的值为(A)A.15 B.16 C.17 D.186.一个顺序存储的线性表的第一个元素的存储地址是100,每个元素的长度为4,则第4个元素的存储地址是(B)。
A. 108B. 112C. 116D. 1207.从一个具有n个结点的单链表中查找其值等于x的结点,在查找成功的情况下,平均需要比较(C)个结点。
A. nB. n/2C. (n+1)/2D. (n-1)/28.在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系(D)A.不一定相同 B.互为逆序C.都不相同D.都相同9.高度为5的二叉树至多有结点数为(A)A. 63B. 32C. 24D.6410.若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为(B)A.图中每个顶点的出度B.图中每个顶点的入度C.图中弧的条数D.图中连通分量的数目11.图的邻接矩阵表示法适用于表示(C)A.无向图B.有向图C.稠密图D.稀疏图12.在一个单链表中,若p所指的结点不是最后一个结点,在p之后插入s所指的结点,则执行(D)。
数据结构模拟试题3

数据结构模拟试题(4)一、填空题:06分,每题02分1、模板类是一种数据抽象,它把________当作参数,可以实现类的复用。
2、假定对长度n=50的有序表进行折半搜索,则对应的判定树中最底下一层的结点数为______个。
3、第i(i=1,2,...,n-1) 趟从参加排序的序列中取出第i个元素,把它插入到由第0个至第i-1个元素组成的有序表中适当的位置,此种排序方法叫做__________排序。
二、单选题:10分,每题02分4、设循环队列的结构是const int MaxSize=100;typedef int DataT ype;struct Queue {DataT ype data[MaxSize];int front, rear;};若有一个Queue类型的队列Q,试问判断队列满的条件应为( )。
A: Q.front==Q.rear;B: Q.front-Q.rear==MaxSize;C: Q.front+Q.rear==MaxSize;D: Q.front==(Q.rear+1) % MaxSize;5、已知一棵二叉树的广义表表示为a(b(c),d(e(,g(h)),f)),则该二叉树的高度为( )。
假定树根结点的高度为0。
A: 3B: 4C: 5D: 66、对于长度为n的顺序存储的有序表,若采用折半搜索,则对所有元素的搜索长度中最大的为( )的值向上取整。
A: log2(n+1)B: log2nC: n/2D: (n+1)/27、设无向图的顶点个数为n,则该图最多有()条边。
A: n-1B: n(n-1)/2C: n(n+1)/2D: n(n-1)8、在采用开散列法解决冲突时,每一个散列地址所链接的同义词子表中各个表项的()值相同A: 关键码B: 非关键码C: 散列函数D: 某个域三、判断题:10分,每题01分9、数据的逻辑结构是指各数据元素之间的逻辑关系,是用户根据应用需要建立的。
数据结构 模拟试题3 参考答案

数据结构模拟试题3 参考答案一、填空题1.设计良好的程序结构;函数名及变量名的命名规范化;使用合理的注释2.O(log10N)3.只存储非零元素(三元组表,十字链表)4.(rear+m-qulen+2) mod (m+1)5.(13,38,28,50,77,66,50,98)6.return s[i]-t[i]return strlen(s)-strlen(t)7.p=head->nextp=p->nextreturn length二、解答:1. Huffman算法:求Huffman树(带权路径长度最短的二叉树)Dijkstra算法:求图中从某个源点到其余各顶点的最短路径Prim算法:求最小生成树Kruskal算法:求最小生成树2. 选择排序不稳定举例:{256256*512128}i=1{128256*512256}i=2{128256*512256}i=3{128256*256512}256和256*在排序前后相对位置发生变化,所以说选择排序是不稳定的。
3.4.举例:5.Hash表如下查找成功情况下的平均查找长度为(3+4+4+4+1+2+2+1+1+2)/10=2.46.快速排序,堆排序,归并排序以归并排序说明:假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个长度为2或1的有序子序列;再两两归并,……,如此重复,直至得到一个长度为n的有序序列为止.举例如下:三、解答:typedef struct BiTNode{TelemType data;struct BiTNode *lchild, *rchild;}BiTNode,*BiTree;Status SearchBST(BiTree T,KeyType key,BiTree f,BiTree &p){if(!T){p=f;return FALSE;}else if EQ(key,T->data.key){p=T;return TRUE;}else if LT(key,T-> data.key) SearchBST(T->lchild,key,T,p);else if SearchBST(T->rchild,key,T,p);}Staus InsertBST(BiTree &T,ElemType e){if(!SearchBST(T,e.key,NULL,p){s=(BiTree)malloc(sizeof(BiTNode));s->data=e;s->lchild=s->rchild=NULL;if(!p) T=s;else if LT(e.key,p->data.key)p->lchild=s;else p->rchild=s;return TRUE;}else return FALSE;}从空树出发,经过一系列的查找插入操作之后,可生成一棵二叉树. main(){BiTree BiT=NULL;int elememt;scanf(“%d”,&element);while(element!=9999){InsertBST(BiT,element);scanf(“%d”,&element);}}typedef struct BiTNode{TelemType data;struct BiTNode *left, *right;int bal;}BiTNode,*BiTree;int computbal(BiTree bt){int hl, hr, max;if(bt==NULL) return(0);else {hl=computbal(bt->LChild);/* 求左子树的深度 */hr=computbal(bt->RChild);/* 求右子树的深度 */bt->bal=hl-hr;/*求出平衡因子*/max=hl>hr?hl:hr;/* 得到左、右子树深度较大者*/return(max+1);/* 返回树的深度 */}}void BFSTraverse(Graph G,Status (*visit)(int v)){for (v=0;v<G.vexnum;++v) visited[v]=FALSE;InitQueue(Q);for(v=0;v<G.vexnum;++v)if(!visited[v]){Visit(v);visited[v]=TRUE;EnQueue(Q,v);while(!QueueEmpty(Q)){DeQueue(Q,u);for(w=FirstAdjVex(G,u);w;w=NextAdjVex(G,u,w))if(!Visited[w]){Visit(w);visited[w]=TRUE;EnQueue(Q,w);}}}}。
数据结构模拟试题三及答案

数据结构模拟试题三一.判断题(每小题1 分,共10分)1.逻辑结构不同的数据,要采用不同的存储方法来存储。
2.单链表中的结点只有后继,没有前驱。
3.栈和队列具有相同的逻辑特性。
4.二叉树中结点之间的相互关系不能用二元组来表示。
5.关键路径是由权值最大的边构成的。
6.在表示矩阵的三元组顺序表中,各元素的排列顺序与矩阵元素值的大小无关。
7.在广义表中,每个原子必须是单个字符。
8.在平衡二叉排序树中,每个结点的平衡因子值是相等的。
9.只有在线性表的初始状态为逆序排列的情况下,起泡排序过程中,元素的移动次数才会达到最大值。
10.在B+树上可以进行顺序查找。
二.填空题(每空1分,共10分)1.若用不带表头结点的单链表来表示链接队列,则只有在________情况下,插入操作既要修改队尾指针的值,也要修改队头指针的值;只有在________情况下,删除操作仅需修改队首指针的值,不需修改队尾指针的值。
2.无向图中边的数目等于邻接矩阵中___________。
3.在各元素查找概率相等的情况下,在含有12个元素的二叉排序树上查找其中一个元素,元素间的平均比较次数至少是____次,至多是____次。
4.对12个元素进行快速排序,排序码的比较次数最多是___次。
5.对B+树来说,若某个非根分支结点中有6个关键字,则在它的某个孩子结点中至少有_____个关键字,至多有_____个关键字。
6.如果在根结点中要查到要找的关键字,则对于B-树来说,下一步应该_________,而对于B+树来说,下一步应该_________。
三.单选题(每题2分,共20分)1.线性结构采用链式存储,________。
A.对插入、删除结点的操作较为有利B.不利于进行顺序访问C.逻辑上相邻的结点在存储器中也相邻D.可以用一些不连续的存储区域来存放一个结点2. 某算法的时间复杂度为O(2n),表明该算法的________。
A.执行时间与2n成正比B.执行时间等于2nC.问题规模是2n D.问题规模与2n成正比3. 在长度为n的_________上,删除最后一个元素,其算法的时间复杂度是O(n)。
数据结构试卷3答案

数据结构试题3参考答案一、单项选择题(本大题共15小题,每小题2分,共30分) 1.D 2.B3.C4.B5.D6.A 7.C8,D9,A10.C11.D 12.C13.D 14.C15.B二、填空题(本大题共10小题,每小题2分,共20分) 16.存储(或存储结构)17.p ->next ->next18.进栈和退栈.进栈和退栈19.12 12 2020.A[4][8] 21.384 22.abefcdg 23.快速排序、堆排序、希尔排序24.2.2 25.多关键字多关键字三、解答题(本大题共4小题,每小题5分,共20分) 26.(1)对第一结点的操作和其他结点一样,无须特殊处理。
((2)空表和非空表的处理相统一了。
)空表和非空表的处理相统一了。
27.28.该图的图形为:该图的图形为:深度优先遍历序列为:深度优先遍历序列为:abdce abdce广度优先遍历序列为:广度优先遍历序列为:abedc abedc2929..(1)对关键字3535、、2020、、33和48进行查找的比较次数为3、2、1、1;1、1;(2)平均查找长度(2)平均查找长度59521123=++++=ASL四、算法阅读题(本大题共4小题,每小题5分,共20分) 30. ①S1=S1->next ②s2=s2->next ③s2(或s2!=NULL 或s2&&!s1) ④s1(或s1!=NULL 或s1&&!s2) ⑤return 0 31.(1)查询链表的尾结点)查询链表的尾结点(2)将第一个结点链接到链表的尾部,作为新的尾结点)将第一个结点链接到链表的尾部,作为新的尾结点 (3)返回的线性表为(a 2,a 3,…,a n ,a 1)32. ①(i+1)%2(或1-i) ②Q->rear[i] ③(Q->rear[i]+)%Maxsize 33.(1)Leafhead F H G D ∧(2)中序遍历二叉树,按遍历序列中叶子结点数据域的值构建一个以Leafhead为头指针的逆序单链表(或按二叉树中叶子结点数据自右至左链接成一个链表)。
《数据结构》3套模拟试题综合测试题带答案5

《数据结构》模拟试题13一、填空题(每小题2分,共18分)1、数据的逻辑结构包括,和三种结构。
2、队列是操作受限的线性结构,只能在插入元素,而在删除元素。
3、串是一种特殊的线性表,其特殊性体现在。
4、有一个10阶对称矩阵A,采用压缩存储方式采用压缩存储方式,以行为主存储下三角形到一个一维数组中,A[0][0]的地址是100(每个元素占2个基本存储单元),则A[5][9]的地址是。
5、在高度为h的二叉树的中只有度为0和度为2的结点,则该类二叉树中所包含的结点数至少为。
6、对于一个有n个顶点和e条边的无向图,若采用邻接链表存储,则表头向量的大小为,邻接表中的结点总数为。
7、对线性表进行二分查找时,要求线性表必须是,且要求。
8、对于文件,按物理结构划分,可分为顺序文件、文件、文件和多关键字文件。
9、外部排序的最基本方法是,其主要时间花费在方面。
二、单项选择题(请将答案写在题目后的括号中。
每题2分,共18分)1、如下函数是求1!+2!+…+n!,其时间复杂度是()。
Long int Sum (int n){ long int sum=0 , t=1 ; int p ;for (p=1; p<=n ;p++) { t=t*p ; sum+=t ; }return(sum) ;}(A)O(n) (B)O(n2) (C)O(㏒2n) (D)O(n㏒2n)2、设有一个栈顶指针为top的顺序栈S,则弹出S的栈定元素的操作是()。
(A)p=S[top++];(B)p=S[++top];(C)p=S[top--];(D)p=S[--top];3、广义表((a),((b),c),(((d))))的表头是,表尾是。
()(A)(a) ((b),c),(((d))) (B)(a) (((b),c),(((d))))(C)((a),((b),c)),(((d))) (D)(a) (((d)))4、一棵二叉树,其先序遍历序列是abdgehicf,中序遍历序列是gdbheiafc,则其后序遍历序列是( )。
3套数据结构模拟题及答案

数据结构模拟题(一)一、单选题1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组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.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
数据结构(第二版) 模拟试题自测卷AB卷带答案3

试卷B一、选择题(本题共20分,每题2分)1.在数据结构中,从逻辑上可以把数据结构分成( ) 。
A .动态结构和静态结构 B. 线性结构和非线性结构 C. 紧凑结构和非紧凑结构 D. 内部结构和外部结构 2. 下列程序段的时间复杂度是( )count=0;for(k=1;k<=n;k*=2) for(j=1;j<=n;j++) count++;A.O(nlog2n)B.O(n)C.O(log2n)D.O(n2) 3. 以下描述错误的是:( )A. 线性表是n 个数据元素的有限非空集合。
B. 栈和队列都是操作受限的线性表。
C. 串(或字符串)是由零个或多个字符组成的有限序列。
D. 非空栈中的栈顶指针top 始终指向栈顶元素的下一个位置。
4. 若采用少用一个队列空间的方法来区分队满队空两种状态,则判定一个顺序循环队列 Q (最大队列长度MAXSIZE )为满队列的条件是( )。
A. Q.front=Q.rearB. Q.front!=Q.rearC. Q.front=(Q.rear+1) % MAXSIZED. Q.front!=(Q.rear+1) % MAXSIZE 5. 按照二叉树的定义,具有 3 个结点的二叉树有( )种。
A. 3 B. 4 C. 5 D. 66. 设矩阵A (如下图所示)是一个对称矩阵,为了节省存储,将其下三角(包括对角线)部分按行序存放在一维数组 B[n(n+1)/2]中,对下三角部分中任一元素 ai,j(i ≥j),在一维数组 B 的下标位置k 的值是( )。
A. i(i-1)/2+j-1 B. i(i-1)/2+j C. i(i+1)/2+j-1 D. i(i+1)/2+j0,01,01,11,01,11,1...............n n n n a a a A a a a ----⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦7. 有一个有序表为{5, 18,23, 33, 42, 54,56,78},当折半查找56时,经过( )次比较后查找成功。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》模拟试卷三
模拟试卷三
模拟试卷三
一、选择题(每小题2分,共20分)
1.一个栈的输入序列为12345,则下列序列中不可能是栈的输出序列的是。
a. 2 3 4 1 5 b. 5 4 1 3 2
c. 2 3 1 4 5 d. 1 5 4 3 2
2.设循环队列中数组的下标范围是l~n,其头尾指针分别为f和r,则其元素个数为。
a. r-f b. r-f+1
c.(r-f)mod n+1 d.(r-f+n)mod n
3.若某链表最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用存储方式最节省时间。
a.单链表 b. 双链表
c. 带头结点的双循环链表 d.单循环链表
4.一棵非空的二叉树的先序序列和后序序列正好相反,则该二叉树一定满足。
a.其中任意一结点均无左孩子 b.其中任意一结点均无右孩子
C.其中只有一个叶子结点 d.是任意一棵二叉树
5.一棵左右子树均不空的二叉树在先序线索化后,其空指针域数为。
a.0 b. l c.2 d.不确定6.数组A[1..5,1..6]的每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为。
a.1140 b.1145 c.1120 d. 1125
7.求最短路径的DIJKSTRA算法的时间复杂度为。
a.O(n) b.O(n+e) c. O(n2) d.O(n×e)
8. 对有18个元素的有序表作二分查找,则查找A[3]的比较序列的下标为。
a. l,2,3
b. 9,5,2,3
c. 9,5,3 d.9,4,2,3
9.快速排序算法在最好情况下的时间复杂度为。
a.O(n) b.O(nlog2n)
c.O(n2) d.O(log2n)
10.下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是。
a.堆排序 b.冒泡排序
c. 快速排序 d.直接插入排序
二、判断题(每小杨1分,共10分)
1.()线性表的长度是线性表所占用的存储空间的大小。
2.()双循环链表中,任意一结点的后继指针均指向其逻辑后继。
3.()在对链队列做出队操作时,不会改变front指针的值。
4.()如果两个串含有相同的字符,则说它们相等。
5.()如果二叉树中某结点的度为1,则说该结点只有一棵子树。
6.()已知一棵树的先序序列和后序序列,一定能构造出该树。
7.()图G的一棵最小代价生成树的代价未必小于G的其他任何一棵生成树的代价。
8.()图G的拓扑序列唯一,则其弧数必为n-1(其中n为G 的顶点数)。
9.()对一个堆技层次遍历,不一定能得到一个有序序列。
1O.()直接选择排序算法满足:其时间复杂度不受数据的初始特性影响,为 O(n2)。
三、境空(每小题2分,共20分)
1.在双循环链表L中,指针P所指结点为尾结点的条件是。
2.在单链表中,删除指针P所指给点的后继结点的语句是。
3. 队列的特性是。
4.若某串的长度小于一个常数,则采用存储方式最节省空间。
5. 在有n个叶子结点的哈夫曼树中,总结点数是。
6.一棵树T采用二叉链表BT存储,如果树T中某结点为叶子结
点,则在二叉链表 BT中所对应的结点一定满足。
7.高度为K的2-3树的结点数至少是。
8.在有n个结点的无向图中,其边数最多为。
9.取出广义表A =(x,(a,b,c,d))中原子b的函数是。
10. 对矩阵采用压缩存储是为了。
四、解答下列各题(20分)
1.分别画出满足下列条件的所有二叉树。
(4分)
( 1)先序序列和中序序列均为 ABCDE。
( 2)先序序列为 ABCDE,并且与其相对应的树的高度为 5。
2.对下面3阶B树依次执行下列操作,画出每步的操作结果。
(6分)
(1)插入300
(2)插入70
(3)插入 30
(4)删除150
3.对下列数据表,写出采用SHELL排序算法排序的每一趟的结果。
(5分)(10,12,20,31,1,5,44,66,61,200,30,80,15O,4,8)
4.求出下面AOE网中的关键路径(要求标明每个顶点的最早和最迟发生时间,并画出关键路径)。
(5分)
五、算法设计(共30分)
1.设计算法求中序线索二叉树中指针P所指结点的后继结点的指针。
(6分)
2.设计算法以判断二叉树T是否为二又排序树(设T中任意两个结点的值均不相等)。
(8分)
3.设计算法将一个带有头结点的单循环锭表A分解为两个具有相同结构的链表B,C,其中B表中结点为A表中值为奇数的结点,而C表中结点为A表中值为偶数的结点(要求利用原表结点)。
(8分)4.设计算法以判断无向图G是否是连通的,若连通则返回true,否则退回false。
(注:可以使用以下几个函数调用:
firstadj(G,v)——返回图G中顶点v的第一个邻接点,若不存在则返回0;nextadj(G,v,w)——返回图G中顶点v的邻接点中处于w之后的邻接点,
若不存在则返回o;
nodes(G)——返回图G中的顶点数)(8分)。