理工大学数据结构期末试题.docx
- 文档编号:11036166
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:21
- 大小:41.74KB
理工大学数据结构期末试题.docx
《理工大学数据结构期末试题.docx》由会员分享,可在线阅读,更多相关《理工大学数据结构期末试题.docx(21页珍藏版)》请在冰豆网上搜索。
理工大学数据结构期末试题
理工大学计算机数据结构部分试题及答案
1.下面程序段的时间复杂度的量级为()
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
for(k=1;k<=j;k++)
x=x+1;
A.O
(1)B.O(n)C.O(n2)D.O(n3)
2.在数据结构中,从逻辑上可以把数据结构分成()
A.动态结构和静态结构B.紧凑结构和非紧凑结构
C.线性结构和非线性结构D.内部结构和外部结构
3.数据结构的()包括集合、线性、树形和图形结构四种基本类型。
A.存储结构B.逻辑结构C.基本运算D.算法描述
4.数据的()包括查找、插入、删除、更新和排序等。
A.存储结构B.逻辑结构C.基本运算D.算法描述
5.数据的存储结构包括顺序、链接、散列和()四种基本类型。
A.线性B.数组C.集合D.索引
6.下面()的时间复杂性最好,即执行时间最短。
A.O(n)B.O(logn)C.O(nlogn)D.O(n2)
7.下面程序段的时间复杂性的量级为()
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) 8.()不是算法的基本特征。 A.正确性B.长度有限C.在规定时间内完成D.确定性 9.一个栈的输入序列是1,2,3,4,5,则下列序列中()是栈的输出序列。 A.31245B.41325C.23415D.14253 10.在有n个结点的二叉链表中,值为空的链域个数为()。 A.n-1B.2n-1C.n+1D.2n+1 1-5DCBCD6-11BCCCC 11.已知完全二叉树有30个结点,则整个二叉树有()个度为1的结点。 A.0B.1C.2D.不确定 12.深度为k的完全二叉树至少有()个结点。 A.2k-1B.2k-2C.2k-1D.2k-2 13.深度为k的完全二叉树至多有()个结点。 A.2k-1B.2k-2C.2k-1D.2k-2 14.对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序,当把第7个记录60插入到有序表时,为寻找插入位置需比较()次。 A.1B.2C.3D.4 15.折半查找有序表(6,15,30,37,65,68,70,72,89,99),若查找元素37,需依次与表中元素()进行比较。 A.65,15,37B.68,30,37C.65,15,30D.65,15,30,37 16.一个长度为n的顺序存储的线性表中,向第i个元素(1≤i≤n+1)位置插入一个新元素时,需要从后面向前依次后移()个元素。 A.n-iB.n-i+1C.n-i-1D.I 17.如图所示的4棵二叉树中,()不是完全二叉树。 (A)(B)(C)(D) 18.对于长度为18的顺序存储的有序表,若采用折半查找,则查找第15个元素的查找长度为()。 A.3B.4C.5D.6 19.设有10000个无序元素,希望用最快的速度挑选出其中前10个最大元素,最好选用()排序法。 A.堆排序B.快速排序C.起泡排序D.插入排序 20.计算机算法指的是()。 A.计算方法B.排序方法C.解决问题的有序序列D.调度方法 11-15BCACD16-20BABAC 21.一个栈的入栈序列1,2,3,4,则它的不可能的输出序列是()。 A.1,2,3,4B.4,3,2,1C.1,3,4,2D.4,1,2,3 22.对于任何一棵二叉树,如果其终端结点数为N0,度为2的结点数为N2,则N0=()。 A.N2-1B.N2+1C.N2D.N2-2 23.线性表是() A.一个有限序列,可以为空B.一个有限序列,不能为空 C.一个无限序列,可以为空D.一个无限序列,不能为空 24.在一个长度为n的线性表中,删除值为x的元素时需要比较元素和移动元素的总次数为() A.(n+1)/2B.n/2C.nD.n+1 25.在一个顺序表的表尾插入一个元素的时间复杂度的量级为() A.O(n)B.O (1)C.O(n2)D.O(logn) 26.设单链表中指针p指向结点ai,若要删除ai之后的结点(若存在),则需修改指针的操作为()。 A.p->next=p->next->nextB.p=p->nextC.p=p->next->nextD.next=p 27.设单链表中指针p指向结点ai,指针f指向将要插入的新结点x,则当x插在链表中两个数据元素ai和ai+1之间时,只要先修改()后修改()即可。 A.p->next=fB.p->next=p->next->next C.p->next=f->nextD.f->next=p->next E.f->next=nullF.f->next=p 28.设单链表中指针p指向结点ai,指针f指向将要插入的新结点x,则在链表中最后一个结点an之后插入时,只要先修改()后修改()即可。 A.f->next=pB.f->next=p->next C.p->next=fD.p->next=f->next E.f=null 29.在一个单链表中,若要在p所指向的结点之后插入一个新结点,则需要相继修改()个指针域的值。 A.1B.2C.3D.4 30.在一个单链表中,若要在p所指向的结点之前插入一个新结点,则此算法的时间复杂性的量级为() A.O(n)B.O(n/2)C.O (1)D.O(n1/2) 21-25DBACB26-30A(D.A)(B.C)BA 31.不带头结点的单链表L为空的判定条件是()。 A.L==NULLB.L->next==NULL C.L->next==LD.L! =NULL 32.带头结点的单链表L为空的判定条件是()。 A.L==NULLB.L->next==NULL C.L->next==LD.L! =NULL 33.在一个带有头结点的双向循环链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改()个指针域的值。 A.2B.3C.4D.6 34.在一个带有头结点的双向循环链表中,若要在p所指向的结点之后插入一个q指针所指向的结点,则需要对q->next赋值为() A.p->priorB.p->next C.p->next->nextD.p->prior->prior 35.对一个具有n个元素的线性表,建立其单链表的时间复杂度为() A.O(n)B.O (1)C.O(n2)D.O(logn) 36.线性表采用链式存储时,其地址() A.必须是连续的 B.一定是不连续的 C.部分地址必须是连续的 D.连续与否均可以 37.假定利用数组a[N]顺序存储一个栈,用top表示栈顶指针,top==-1表示栈空,并已知栈未满,当元素x进栈时所执行的操作为() A.a[--top]=xB.a[top--]=xC.a[++top]=xD.a[top++]=x 38.若已知一个栈的入栈序列是1,2,3,…..n,其输出序列为p1,p2,p3,…..pn,若p1=n,则pi为() A.iB.n-iC.n-i+1D.不确定 39.判定一个栈S(最多元素为m0)为空的条件是() A.S.top! =0B.S.top==0C.S.top! =m0D.S.top==m0 40.判定一个栈S(最多元素为m0)为满的条件是() A.S.top! =0B.S.top==0C.S.top! =m0-1D.S.top==m0-1 31-35ABCBA36-40DCCBD 41.一个队列的入队序列是1,2,3,4,则队列的输出序列是() A.4,3,2,1B.1,2,3,4C.1,4,3,2D.3,2,4,1 42.从一个顺序循环队列中删除元素时,首先需要() A.前移队首指针B.后移队首指针 C.取出队首指针所指位置上的元素D.取出队尾指针所指位置上的元素 43.假定一个顺序循环队列的队首和队尾指针分别用front和rear表示,则判断队列空的条件为() A.front+1==rearB.rear+1==frontC.front==0D.front==rear 44.假定一个顺序循环队列存储于数组a[N]中,其队首和队尾指针分别用front和rear表示,则判断队列满的条件为() A.(rear-1)%N==frontB.(rear+1)%N==front C.(front-1)%N==rearD.(front+1)%N==rear 45.树中所有结点的度等于所有结点数加() A.0B.1C.-1D.2 46.在一棵树中,每个结点最多有()个前驱结点。 A.0B.1C.2D.任意多个 47.在一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点点数为2个,则度为0的结点数为()个。 A.3B.4C.5D.6 48.在一棵二叉树上第5层的结点数最多为() A.16B.15C.8D.32 49.在一棵具有n个结点的二叉树的第i层上,最多具有()个结点。 A.2iB.2i+1C.2i-1D.2n 50.一颗具有35个结点的完全二叉树的深度为() A.6B.7C.5D.8 41-45BBDBC46-50BDACA 51.在一棵完全二叉树中,若编号为i的结点存在右孩子,则右孩子结点的编号为() A.2iB.2i-1C.2i+1D.2i+2 52.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为() A.2hB.2h-1C.2h+1D.h+1 53.按照二叉树的定义,具有3个结点的二叉树有()种状态。 A.5B.4C.3D.30 54.若查找每个元素的概率相等,则在长度为n的顺序表上查找任意元素的平均查找长度为() A.nB.n+1C.(n-1)/2D.(n+1)/2 55.顺序查找法适合于存储结构为()的线性表。 A.散列存储B.顺序存储或链接存储 C.压缩存储D.索引存储 56.对于顺序存储的有序表(5,12,20,26,37,42,46,50,64),若采用折半查找,则查找元素26的查找长度() A.2B.3C.4D.5 57.对线性表进行折半查找时,要求线性表必须() A.以顺序方式存储 B.以链接方式存储 C.以顺序方式存储,且结点按关键字有序排序 D.以链接方式存储,且结点按关键字有序排序 58.采用折半查找方法查找长度为n的线性表时,每个元素的平均查找长度为() A.O(n2)B.O(nlogn)C.O(n)D.O(logn) 59.在对n个元素进行直接插入排序的过程中,共需要进行()趟。 A.nB.n+1C.n-1D.2n 60.对n个元素进行直接插入排序时间复杂度为() A.O (1)B.O(n2)C.O(n)D.O(nlog2n) 51-55CBADB56-60CCDCB 61.在对n个元素进行快速排序的过程中,最好情况下需要进行()趟。 A.nB.n/2C.lognD.2n 62.在对n个元素进行冒泡排序的过程中,至少需要()趟完成。 A.1B.nC.n-1D.n/2 63.在对n个元素进行快速排序的过程中,平均情况下的时间复杂度为() A.O (1)B.O(logn)C.O(n2)D.O(nlogn) 64.排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为() A.插入排序B.起泡排序C.希尔排序D.选择排序 65.用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下: (1)25,84,21,47,15,27,68,35,20 (2)20,15,21,25,47,27,68,35,84 (3)15,20,21,25,35,27,47,68,84 (4)15,20,21,25,27,35,47,68,84 则采用的排序方法是()。 A.选择排序B.希尔排序C.插入排序D.快速排序 66.对下列四个序列进行快速排序,各以第一个元素为基准进行第一次划分,则在该次划分过程中需要移动元素次数最多的序列为()。 A.1,3,5,7,9B.5,7,9,1,3 C.5,3,1,7,9D.9,7,5,3,1 67.若对n个元素进行简单选择排序,则进行任一趟排序的过程中,为寻找最小值元素所需要的时间复杂度为() A.O (1)B.O(logn)C.O(n)D.O(n2) 68.若对n个元素进行堆排序,则在由初始堆进行每趟排序的过程中,共需要进行()次筛运算。 A.n+1B.n/2C.nD.n-1 69.排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一段的方法,称为()。 A.希尔排序B.起泡排序C.插入排序D.选择排序 70.一组记录的关键字为(45,80,55,40,42,85),则利用堆排序的方法建立的初始堆为()。 A.(80,45,55,40,42,85)B.(85,80,55,40,42,45) C.(85,80,55,45,42,40)D.(85,55,80,42,45,40) 61-65CADAD66-70BCDDB 71.若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为()。 A.1B.i-1C.iD.i+1 72.在对n个元素进行冒泡排序的过程中,第一趟至多需要进行()次相邻元素之间的比较。 A.n+1B.n/2C.nD.n-1 73.若一个元素序列基本有序,则选用()排序较快。 A.堆排序B.快速排序C.直接插入排序D.直接选择排序 74.快速排序方法在()情况下最不利于发挥其长处。 A.要排序的数据量太大B.要排序的数据中含有多个相同值 C.要排序的数据已基本有序D.要排序的数据个数为奇数 75.排序方法中,将整个无序序列分割成若干个小的子序列并分别进行插入排序的方法,称为()。 A.希尔排序B.冒泡排序C.直接插入排序D.直接选择排序 76.用直接插入排序方法对下列4个表由小到大进行排序,比较次数最少的是()。 A.(94,32,40,90,80,46,21,69) B.(21,32,46,40,80,69,90,94) C.(32,40,21,46,69,94,90,80) D.(90,69,80,46,21,32,94,40) 77.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序方法,以第一个纪录为基准得到的一次划分结果为()。 A.(38,40,46,56,79,84) B.(40,38,46,79,56,84) C.(40,38,46,56,79,84) D.(40,38,46,84,56,79) 78.如果对元素序列(7,2,5,8,1,11)进行堆排序,并且采用小根堆,则由初始数据构成的初始堆为()。 A.(1,2,5,7,8,11) B.(1,2,5,8,7,11) C.(1,5,2,7,8,11) D.(1,5,2,8,11,7) 79.如图所示,该二叉树的前序遍历序列是()。 A.EGFACDB B.EAGCFBD C.EACBDGF D.EGACDFB 80.已知某二叉树的后序遍历序列是DACBE,中序序列是DEBAC,则它的前序遍历序列是()。 A.ACBED B.DEABC C.DECAB D.EDBAC 71-75CDCCA76-80BCBCD 81.已知某二叉树的前序遍历序列是ABDEFGC,中序序列是DEBGFAC,则对应的二叉树为()。 81-85B 2.填空题 1.数据结构及数据的逻辑结构包括_____,______,______,________四种类型。 2.数据的存储结构及物理结构包括_____,______,______,________四种基本类型。 3.数据结构是研究数据的_____,_____以及它们之间的相互关系,并对这种结构定义相应的_____,设计出相应的_____,而确保经过这些运算后所得到的新结构是_____结构类型。 4.一个算法应具有_____,_____,_____,_____,_____这五个特征。 5.一个算法的时间复杂度是该算法包含的_____的多少,它是一个算法运行时间的相对度量,一个算法的空间复杂性是指该算法在运行过程中临时占用的_____的大小。 6.一个算法的时间复杂性通常用它的_____形式表示,当一个算法的时间复杂度与问题的规模n大小无关时,则表示为_____;成正比时,则表示为_____;成对数关系时,则表示为_____;成平方时,则表示为_____。 7._____是描述客观事物的数、字符以及所有能输入到计算机且被计算机程序加工处理的符号集合。 _____是数据的基本单位,有时这个单位由若干个_____组成,在这种情况下,又称它为记录,_____是数据的最小单位,而由记录组成的线性表为_____。 8.一种数据结构的元素集合K和他的二元关系R为: K={a,b,c,d,e,f,g,h} R={,, 该数据结构具有_____结构。 9.一种数据结构的元素集合K和他的二元关系R为: K={a,b,c,d,e,f,g,h} R={ 该数据结构具有_____结构。 10.一种数据结构的元素集合K和他的二元关系R为: K={1,2,3,4,5,6} R={(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)} 该数据结构具有_____结构。 1.集合、线性结构、树型结构、图形结构(网状结构) 2.顺序存储、链式存储、散列、索引 3.物理结构、逻辑结构(二者顺序可颠倒)、运算、算法、原来的 4.有穷性、确定性、可行性、输入性、输出性 5.语句执行次数、存储空间 6.数量级、O (1)、O(n)、O(logn)、O(n2) 7.数据、数据元素、数据项、数据项、文件 8.线性结构 9.树型结构 10.图形结构(网状结构) 11.若经常需要对线性表进行插入和删除运算,则最好采用_____存储结构,若经常需要对线性表进行查找运算,则最好采用_____存储结构。 12.访问一个线性表中具有给定值元素的时间复杂性的量级为_____。 13.对于一个长度为n的顺序表,在表头插入元素的时间复杂性为_____,在表尾插入元素的时间复杂性为_____。 14.在一个单链表中指针p所指向结点的后面插入一个指针q所指向的结点时,首先把_____的值赋给q->next,然后把_____的值赋给p->next。 15.在一个单链表中的p所指向结点之前插入一个指针s所指向的结点时,可执行如下操作: (1)s->next=_____; (2)p->next=s; (3)t=p->data; (4)p->data=_____; (5)s->data=_____; 16.假定指向单链表中第一个结点的表头指针为head,则向该单链表的表头插入指针p所指向的新结点时,首先执行_____赋值操作,然后执行_____赋值操作。 17.在一个单链表中删除指针p所指向结点的后继结点时,需要把_____的值赋给p->next指针域。 18.在一个单链表中删除指针p所指向结点时,应执行一下操作: q=p->next; p->data=p->next->data; p->next=_____; free(q); 19.在_____链表中,既可以通过设定一个头指针也可以通过设定一个尾指针来确定它,即通过头指针或尾指针可以访问到该链表中的每个结点。 20.在一个带有头结点的双向循环链表中的p所指向的结点之前插入一个指针s所指向结点时,可执行如下操作: (1)s->data=element; (2)s->prior=_____; (3)p->prior->next=s; (4)s->next=_____; (5)p->prior=_____; 11.链式、顺序 12.O(n) 13.O(n)、O (1) 14.p->next、q 15.p->next、s->data、t 16.p->next=head、head=p 17.p->next->next 18.p->next->next 19.循环 20.p->prior、p、s 21.在一个双向链表中指针p所指向结点之前插入一个新结点时,其时间复杂性的量级为_______。 22.线性表的长度是指_______。 23.在线性表的顺序存储中,元素之间的逻辑关系是通过_______决定的,在线性表的链式存储中,元素之间的逻辑关系是通过_______决定的。 24.根据线性表的链式存储结构中每个结点所含指针的个数,链表可分为_______和_______。 25.线性表、栈和队列都是_______结构,对于栈只能在_______插入和删除元素;对于队列只能在_______插入元素,在______删除元素。 26.设有一空栈,现有输入序列1,2,3,4,5,经过push,push,pop,push,pop,push,push后,对应的输出序列是_______。 27.设元素1,2,3,4,5依次进栈,若要在输出端得到序列34251,则应进行的操作序列为push(S,1),push(S,2),______,pop(S),push(S,4),pop(S),______,______,pop(S),pop(S)。 28.在一个具有n个存储单元的循环队列中,当队列满时共有_____
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 理工大学 数据结构 期末 试题