还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
、一匕试卷数据结构试题及答案修2
一、单选题每题分,共分220对一个算法的评价,不包括如下方面的内容
1.茁壮性和可读性并行性正确性时空复杂度A.B.C.D.在带有头结点的单链表中,要向表头插入一个由指针指向的结点,则执行
2.HL poA.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.123网是一种
5.AOV有向图无向图无向无环图有向无环图A.B.C.D.若需要利用形参直接访问实参时,应将形参变量说明为参数
7.值函数指针引用A.B.C D.在稀疏矩阵的带行指针向量的链接存储中,每一个单链表中的结点都具有相同的
8.o行号列号元素值非零元素个数A.B.C.D.void sumbitree*bt,int s{ifbt!=O{s=s+bt-data;sumbt-lchild,s;sumbt-rchild,s;}}设计将所有奇数移到所有偶数之前的算法
2.void quickpassintr[],int s,int t{int i=sj=t,x=r[s];whileij{while ijr[j]%2==0j=j-l;ifij{r[i]=r[j];i=i+l;}while ijr[i]%2==l i=i+l;ifij{r[j]=r[i];j=j-l;}}r[i]=x;}设计判断单链表中元素是否是递增的算法
3.int isriselklklist*head{ifhead==O||head-next==O returnl;elseforq=head,p=head-next;p!=0;q=p,p=p-nextifq-datap-data returnO;returnl;}试卷
十四一、选择题分24下列程序段的时间复杂度为
1.i=0,s=0;while sn{s=s+i;1+4A ini/2B Oni/3C OnD On2设某链表中最常用的操作是在链表的尾部插入或者删除元素,则选用下列存储方式最节省运算时
2.间单向链表单向循环链表A B双向链表双向循环链表C D设指针指向单链表中结点指针指向单链表中结点的后继结点指针指向被插入的结点
3.q A,p A B,s X,则在结点和结点插入结点的操作序列为ABXA s-next=p-next;p-next=-s;B q-next=s;s-next=p;C p-next=s-next;s-next=p;D p-next=s;s-next=q;.设输入序列为、、、、、则通过栈的作用后可以得到的输出序列为4123456,A5,3,4,6,1,2B3,2,5,6,4,1C3,1,2,5,4,6Dl,5,4,6,2,3设有一个阶的下三角矩阵包括对角线,按照从上到下、从左到
5.10A右的顺序存储到连续的个存储单元中,每一个数组元素占个字节的存储空间,则地551A
[5]
[4]址与的地址之差A
[0]
[0]为A10B19C28D55设一棵叉树中有畦个度数为的结点,个度数为的结点,点,则,个度数为的结
6.m1N22Nm m€@1N,N1i-DN.C i=2NB i=i i D,=21A,=i6,9,16,设一组权值集合8,W=15,3,14,2,要求根据这些权值集合构造一棵哈夫曼17,该树中共有个叶子结点树,则这棵哈夫曼树的带权路径长度为A129B219C189D229设有个关键字具有相同的函数值,则用线性探测法把这个关键字映射到表中
9.n Hashn HASH需要做次线性探测A n2B nn+l C nn+l/2D nn-l/2设某棵二叉树中惟独度数为和度数为的结点且度数为的结点数为则这棵二叉中共有
10.020n,个结点A2n Bn+1C2n-l D2n+I
二、填空题分,其中最后两小题各分486设需要对个不同的记录关键字进行排序,则至少需要比次,至多需要
1.5比较次设一棵叉树脂的结点数为用多重链表表示其存储结构,则该树中有个空
5.m n,指针域设指针变量指向单链表中结点则删除结点的语句序列为
6.p A,Aq=p-next;p-data=q-data;p-next=;feeeq;数据结构从逻辑上划分为三种基本类型、和
7.o设无向图中有个顶点条边,则用邻接矩阵作为图的存储结构进行深度优先或者广度优
8.G ne先遍历时的时间复杂度为;用邻接表作为图的存储结构进行深度优先或者广度优先遍历的时间复杂度为O设有向图中的有向边的集合.
12.G E={1,2,2,3,1,4,4,5,5,3,4,6,则该图的一个拓才卜序列为6,5},o下面程序段的功能是建立二叉树的算法,请在下划线处填上正确的内容
13.typedef struct node{int data;struct node*lchild;;}bitree;void createbitreebitree*bt scanf%c,chifch==,#1;else{bt=bitree*mallocsizeofbitree;bt-data=ch;;createbitreebt-rchild;}}下面程序段的功能是利用从尾部插入的方法建立单链表的算法,请在下划线处填上正确的内
14.谷Otypedef struct node{int data;structnode*next;}Iklist;void lklistcreate_*head{for i=l;i=n;i++{p=lklist^mallocsizeoflklist scanfu%dA,-p»data;p-next=O;ifi==lhead=q=p;else{q-next=p;;}}参考答案
一、选择题
1.A
2.D
3.B
4.B
5.B
6.D
7.A
8.D
9.D
10.C
11.B
12.D二填空题、n
4.1,
25.q-next
1.4,
102.OCnlogzn,On
23.On2,On+e
9.8/3线性结构,树型结构,图型结构
7.
8.10,13,27,76,65,97,
3810.38,13,27,10,65,76,
9711.
12465313.structnode^rchild,bt=O,createbitreebt-lchild
14.lklist
12.9q=p
二、填空题(每空分,共分)128数据结构是指数据及其相互之间的当结点之间存在对()的联
1.o MN MN系时,称这种结构为O队列的插入操作是在队列的一尾进行,删除操作是在队列的首—进行
2.当用长度为的数组顺序存储一个栈时,假定用表示栈空,则表示栈满的条件是
3.N top==Ntop==0o对于一个长度为的单链存储的线性表,在表头插入元素的时间复杂度为,在表
4.n尾插入元素的时间复杂度为二叉树是指度为的树一棵结点数为的二叉树,其所有结点的度
7.2N的总和是O对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个对一棵由算
8.术表达式组成的二叉语法树进行后序遍历得到的结点序列是该算术表达式的对于一棵具有个结点的二叉树,用二叉链表存储时,其指针总数为个,其
9.n中个用于指向孩子,个指针是空暇的若对一棵彻底二叉树从开始进行结点的编号,并按此编号把它顺序存储到一维数组中,-
10.0A即编号为的结点存储到中其余类推,则元素的左孩子元素为,右孩子元素0A
[0]A[i]为,双亲元素为0在线性表的散列存储中,处理冲突的常用方法有和
11.______两种
三、运算题每题分,共分624已知一个稀疏矩阵如下所示,试:
1.6x5写出它的三元组线性表;100001给出三元组线性表的顺序存储表示~2000000-1000设有一个输入数据的序列是试画出从空树起,砺输入2,{46,25,78,62,12,80},0000-250000各个数据而生成的二叉搜索树07000—对于图所示的有向图若存储它采用邻接表,并且每一个顶点邻接表6中的边结点都是按照终点序号从小到大的次序链接的,试写出:从顶点
①出发进行深度优先搜索所得到的深度优先生成树;从顶点
②出发进行广度优先搜索所得到的广度优先生成树;已知一个图的顶点集和边集分别为:4,V EV={1,2,3,4,5,6,7};E={v2J,v3,2,v3,6,v4,3,v4,5,v4,6,v5J,v5,7,v6,l,v6,2,v6,5};若存储它采用邻接表,并且每一个顶点邻接表中的边结点都是按照终点序号从小到大的次序链接的,按主教材中介绍的拓朴排序算法进行排序,试给出得到的拓朴排序的序列
四、阅读算法每题分,共分
7141.int Primeint n{int i=l;int x=int sqrtn;while++i=xif n%i==0break;if ixreturn1;else return0;}指出该算法的功能;1该算法的时间复杂度是多少2写出下述算法的功能2,void AJadjlistGL,int i,intn{Queue Q;InitQueueQ;cout«i«*visited[i]=true;QInsertQ,i;while!QueueEmptyQ{int k=QDeleteQ;edgenode*p=GL[k];whilep!=NULL{int j=p-adjvex;if!visited[j]{coutvvjvvM;visited[j]=true;QlnsertQj;}p=p-next;}}}是单链表的头指针,试写出删除头结点的算法HL()ElemType DeleFrontLNode*HL参考答案
一、单选题(每题分,共分)220l.B
2.A
3.B
4.C
5.D
6.B
7.D-、填空题(每空分,共分)126联系图(或者图结构)
1.尾首
2.
3.top==0()()
4.O10n
5.
128441086.33有序
7.n-1有序序列后缀表达式(或者逆波兰
8.
9.2n n-1n+1开放定址法链接法
11.快速归并运算题每题分,共分624分11,5,1,3,2,5,・2,5,1,5,6,3,7347b c图8如图所示
2.
83.DFS
①②③④⑤BFS
②③④⑤①()三元组线性表的顺序存储表示如图示27
四、阅读算法(每题7分,共14分).拓朴排序为44365721⑴判断是否是素数(或者质数)n2OZ
2.
六、编写算法(8分)功能为从初始点出发广度优先搜索由邻接表所表示的图v.GLElemType DeleFrontLNode*HL{if HL==NULL空表exitl;LNode*p=HL;HL=HL-next;ElemType temp=p-data;delete p;return temp;}试卷1-、选择题(分)30下列程序段的时间复杂度为()fori=0;ivm;i++forj=0;jt j++c[i]U]=0;fori=0;ivm;i++forj=0;jvt;j++fork=0;kvn;k++c[i]j]=c[i]j]+a[i][k]^b[k][j];A Om*n*t BOm+n+t COm+n*t DOm*t+n设顺序线性表中有个数据元则删除表中第个元素需要挪移()个元素
2.n iA n-i Bn+1-i Cn-l-i Di.设是由和三棵树组成的森林,与对应的二叉树为、和的结点数3F TLT2T3F B,Tl T2T3分别为NL N2和N3,则二叉树B的根结点的左子树的结点数为(oA Nl-1B N2-1C N2+N3D N1+N3A OnD OlognB Onlogn COn222利用直接插入排序法的思想建立一个有序线性表的时间复杂度为
4..设指针变量指向双向链表中结点指针变量指向被插入的结点则在结点的后面插入结点5p A,s X,A X的操作序列为A p-right=s;s-left=p;p-right-left=s;s-right=p-right;;;B s-left=p s-right=p-right p-right-left=s;p-right=s;;s-right=p-rightC p-right=s;p-right-left=s;s-left=p;D s-left=p;s-right=p-right;p-right-left=s;p-right=s;
7.—设输入序列、、经过栈作用后,输出序列中的第一个元素是123n n,则输出序列中的第个输出元素是iAn-i Bn-1-i不能确定Cn+1-iD二■期而主小后一小方a rI散列函数则最好选择Hkey=key%p,p/%的存小于等于的最大A m小于等于的最大素数B m奇数小于等于的最大m小于等于的最大合数偶数D mA4B5C6D7设在一棵度数为的树中,度数为的结点数有个,度数为的结点数有个,度数为的332211结点数有个,那末度数为的结点数有个
20.设彻底无向图中有个顶点,则该彻底无向图中有条边10nA nn-l/2B nn-l Cnn+l/2D n-l/2设有向无环图中的有向边集合则下列属于该有向图的一种拓扑排14,G E={vl,2,2,3,3,4,1,4},G序序列的是Al,2,3,4B2,3,4,1C1,4,2,3D1,2,4,3
二、填空题分30设指针指向单链表中结点指针指向被插入的结点
1.p A,s则在结点的前面插入结点时的操作序列为;X,A X1s-next=2p-next=s;3t=p-data;4p-data=5s-data=t;设某棵彻底二叉树中有个结点,则该二叉树中有个叶子结点
2.100设某顺序循环队列中有个元素,且规定队头指针指向队头元素的前一个位置,队尾指针
3.m F指向队尾元素的当前位置,则该循环队列中最多存储队列元素R设一组初始记录关键字序列为则根据这些记录关键字构造的
6.20,12,42,31,18,14,28,二叉排序树的平均查找长度是设一棵二叉树的中序遍历序列为后序遍历序列为则这棵二叉树的前序序列为
7.BDCA,DBAC,设用于通信的电文仅由个字母组成,字母在电文中浮现的频率分别为、、、、、
8.
87192632、、根据这些频率作为权值构造哈夫曼树,则这棵哈夫曼树的高度32110,为0设无向图如右图所示,则其最小生成树上所有边的权值之和为
10.G
三、判断题分20有向图的邻接表和逆邻接表中表结点的个数不一定相等
1.对链表进行插入和删除操作时不必挪移链表中结点
2.子串在主串中的位置为
3.“ABC”“AABCABCD”2若一个叶子结点是某二叉树的中序遍历序列的最后一个结点,则它必是该二叉树的先序遍历序
4.列中的最后一个结点用邻接矩阵作为图的存储结构时,则其所占用的存储空间与图中顶点数无关而与图中边数有
6.关中序遍历一棵二叉排序树可以得到一个有序的序列
7.入栈操作和入队列操作在链式存储结构上实现时不需要考虑栈溢出的情况
8.顺序表查找指的是在顺序存储结构上进行查找
9.堆是彻底二叉树,彻底二叉树不一定是堆
10.
五、算法设计题分20设计计算二叉树中所有结点值之和的算法
1.设计将所有奇数移到所有偶数之前的算法
2.设计判断单链表中元素是否是递增的算法
3.参考答案
1.A
2.A
3.A
4.C
5.D
6.D
7.C
8.B
9.C
10.A
14.A
15.A
二、填空题
1.p-next,s-data
2.
503.m-
14.6,85,快速,堆619/7
一、选择题
7.CBDA
8.
69.24,65,33,80,70,56,
4810.8
三、判断题错.对.对.对.错L
2345.错.对.对
678.错.910
四、算法设计题.设计计算二叉树中所有结点值之和的算法1。