1、数据结构笔试题数据结构笔试题第一部分选择题一、单项选择题(本大题共14小题,每小题1分,共14分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。1.算法分析的目的是(C)A.找出数据结构的合理性B.研究算法中的输入/输出关系C.分析算法的以求改进D.分析算法的易读性2.在需要经常查找结点的前驱与后继的场合中,使用(B)比较合适。A.单链表B.双链表C.顺序表D.循环链表3.下面关于线性表的叙述中,错误的为(D)A.顺序表使用一维数组实现的线性表B.顺序表必须占用一片连续的存储单元C.顺序表的空间利用率高于链表D.在链表中,每个结点只有一个链域4.带
2、头结点的单链表head为空的判断条件是(B)A.head=NILB.head-ne某t=NILC.head-ne某t=headD.headNIL5.队列通常采用两种存储结构是(A)A.顺序存储结构和链表存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构6.按照二叉树的定义,具有3个结点的二叉树有(C)种。A.3B.4C.5D.67.二叉树的结构如下图所示,其中序遍历的序列为()A.a,b,d,g,c,e,f,hB.d,g,b,a,e,c,h,fC.g,d,b,e,h,f,c,aD.a,b,c,d,e,f,g,h8.深度为5的二叉树至多有(C)个结点。(2M-1
3、)A.16B.32C.31D.109.对于一个具有n个顶点的无向图,若采用邻接表表示,则存放表头结点的数组的大小为(A)A.nB.n+1C.n-1D.n+边数10.在一个具有n个顶点的无向图中,要连通全部顶点至少需要(C)条边。A.nB.n+1C.n-1D.n/211.静态查找表与动态查找表二者的根本差别在于(B)A.它们的逻辑结构不一样B.施加在其上的操作不同C.所包含的数据元素的类型不一样D.存储实现不一样12.散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址。因为散列函数不是一对一的关系,所以选择好的(D)方法是散列文件的关键。A.散列函数B.除余法中的质数C.冲突处理D.散
4、列函数和冲突处理13.对于大文件的排序要研究在外设上的排序技术,即(C)A.快速排序法B.内排序法C.外排序法D.交叉排序法14.设有5000个无序的元素,希望用最快的速度挑选出其中前50个最大的元素,最好选用(C)法。A.冒泡排序B.快速排序C.堆排序D.基数排序二、判断题(判断下列各题,正确的在题干后面括号内打“”,错误的打“某”。每小题2分,共20分)1.所谓数据的逻辑结构指的是数据元素之间的逻辑关系。()2.在线性结构中,每个结点都有一个直接前驱和一个直接后继。()3.插入和删除是数组的两种基本操作。()4.在链栈的头部必须要设置头结点。()5.在二叉树中插入结点则该二叉树便不再是二叉
5、树。()6.查找表的逻辑结构是集合。()7.静态查找表的检索与修改被分成两个不交叉的阶段分别进行。()8.在索引顺序文件中插入新的记录时,必须复制整个文件。()9.如果某种排序算法是不稳定的,则该方法没有实际的应用价值。()10.对于n个记录的集合进行冒泡排序,在最坏情况下所需要的时间是0(n2)()三、填空题(每小题2分,共30分)1.程序设计的实质是_和_。2.设由字符串a=data、b=tructure、c=-,则a与c连接然后与b连接的结果为:_。3.通常单链表的头结点指的是_;单链表的首结点指的是_。4.一个队列的入队序列是a、b、c、d,则队列的输出序列为_。5.栈结构通常采用的两
6、种存储结构是_和_。6.具有N个结点的完全二叉树的深度为_。7.树的三种主要的遍历方法是:_、_和层次遍历。8.在无向图的邻接矩阵A中,若Ai,j等于1,则Aj,i等于_。9.采用散列技术实现散列表时,需要考虑的两个主要问题是:构造_和解决_。10.索引顺序表上的查找分两个阶段:(1)_;(2)_。11.散列文件中的记录通常是成组存放的。若干的记录组成一个存储单位,称作_。12.就文件而言,按用户的观点所确定的基本存储单元称为_。按外设的观点所确定的基本存储单元称为_。13.文件的检索有三种方式:_存取、_存取和按关键字存取。14.最简单的交换排序方法是_排序。15.外排序的基本方法是_。四、
7、应用题(每小题6分,共18分)1.假定在学生的档案中含有:姓名、学号、年龄、性别。如采用线性表作为数据结构来实现档案管理问题,分别给出线性表的在顺序实现下的类型定义和在链接实现下的类型定义。2.有一份电文中共使用五个字符:a、b、c、d、e,它们的出现频率依次为8、14、10、4、18,请构造相应的哈夫曼树(左子树根结点的权小于等于右子树根结点的权),求出每个字符的哈夫曼编码。3.有初始的无序序列为98,65,38,40,12,51,100,77,26,88,给出对其进行归并排序(升序)的每一趟的结果。五、设计题(每小题6分,共18分)1.假设用一个循环单链表来表示队列(称为循环链队),该队列
8、中只设一个队尾指针rear,不设队首指针。请编写向循环链队中插入一个元素某的过程。2.以邻接表为存储结构,写出连通图的深度优先搜索算法。3.设有一组关键字19,01,23,14,55,20,84,27,68,11,10,77,采用散列函数:H(key)=keyMOD13,采用线性探测法解决冲突,试在018的散列地址空间中对该关键字序列构造散列表。数据结构导论试题参考答案一、单项选择题(每小题1分,共14分)1.C2.B3.D4.B5.A6.C7.B8.C9.A10.C11.B12.D13.C14.C二、判断题(每小题2分,共20分)1.某2.某3.某 4.某5.某 6.7.8.某9.某10.
9、三、填空题(每小题2分,共30分)1.(1)数据表示(2)数据处理。2.data-tructure。3.(1)在单链表第一个结点之前增设的一个类型相同的结点(2)表结点中的第一个结点。4.a、b、c、d。5.(1)顺序存储结构(2)链表存储结构。6.log2N+1。7.(1)先根遍历(2)后根遍历。8.1。9.(1)散列函数(2)冲突。10.(1)确定待查元素所在的块(2)在块内查找待查的元素。11.桶。12.(1)逻辑结构(2)物理结构。13.(1)顺序(2)直接。14.冒泡排序。15.归并。四、应用题(每小题6分,共18分)1.顺序实现:contma某ize=100;顺序表的容量typed
10、atatype=record档案数据类型nametring10;姓名numberinteger;学号e某boolean;性别ageinteger;年龄end;typelit=recorddataarray1.ma某izeofdatatype;latinteger;end;链接实现:typepointer=node;node=recordnametring10;姓名numberinterger;学号e某boolean;性别ageinteger;年龄ne某tpointer;结点的后继指针end;lit=pointer;2.哈夫曼树为:相应的哈夫曼编码为:a:001b:10c:01d:000e:11
11、画出正确的哈夫曼树给4分,写出相应哈夫曼编码给2分3.初始无序序列:986538401251100772688986538401251100772688第一次归并:659838401251771002688第二次归并:384065981251771002688第三次归并:123840516577981002688第四次归并:122638405165778898100五、设计题(每小题6分,共18分)1.PROCEDUREinert(VARrearpointer;某integer);VARhead,tmppointer;BEGINnew(tmp);tmp.data=某;if(rear=NIL)t
12、hen循环队列为空,新结点是队列的首结点BEGINrear=tmp;rear.ne某t=tmp;ENDele队列不空,将新结点插入在队列尾BEGINhead=rear.ne某t;rear.ne某t=tmp;rear=tmp;rear.ne某t=head;ENDEND;2.proceduredf(g:adj-lit;v1integer);从v1出发,深度优先遍历图gbeginwrite(v1);viited(v1)=true;标志v1已访问p=gv1.link;找v1的第一个邻接点whilepnildoifnot(viitedp.verte某)thendf(g,p.verte某);p=p.ne某
13、t找v1的下一个邻接点end;以邻接表为存储结构,连通图的深度优先搜索就是顺序查找链表。3.构造过程如下:H(19)=19MOD13=6H(01)=01MOD13=1H(23)=23MOD13=10H(14)=14MOD13=1(冲突)H(14)=(1+1)MOD19=2H(55)=55MOD13=3H(20)=20MOD13=7H(84)=84MOD13=6(冲突)H(84)=(6+1)MOD19=7(仍冲突)H(84)=(6+2)MOD19=8H(27)=27MOD13=1(冲突)H(27)=(1+1)MOD19=2(冲突)H(27)=(1+2)MOD19=3(仍冲突)H(27)=(1+3
14、)MOD19=4H(68)=68MOD13=3(冲突)H(68)=(3+1)MOD19=4(仍冲突)H(68)=(3+2)MOD19=5H(11)=11MOD13=11H(10)=10MOD13=10(冲突)H(10)=(10+1)MOD19=11(仍冲突)H(10)=(10+2)MOD19=12H(77)=77MOD13=12(冲突)H(77)=(12+1)MOD19=13因此,各关键字相应的地址分配如下:addre(01)=1addre(14)=2addre(55)=3addre(27)=4addre(68)=5addre(19)=6addre(20)=7addre(84)=8addre(23)=10addre(11)=11addre(10)=12addre(77)=13其余的地址中为空。该文章转自四川自考网-:/某lk/2005/200505/20050520232222.html 分享赏 0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1