数据结构真题分类整理.docx

上传人:b****8 文档编号:9428822 上传时间:2023-02-04 格式:DOCX 页数:54 大小:376.39KB
下载 相关 举报
数据结构真题分类整理.docx_第1页
第1页 / 共54页
数据结构真题分类整理.docx_第2页
第2页 / 共54页
数据结构真题分类整理.docx_第3页
第3页 / 共54页
数据结构真题分类整理.docx_第4页
第4页 / 共54页
数据结构真题分类整理.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

数据结构真题分类整理.docx

《数据结构真题分类整理.docx》由会员分享,可在线阅读,更多相关《数据结构真题分类整理.docx(54页珍藏版)》请在冰豆网上搜索。

数据结构真题分类整理.docx

数据结构真题分类整理

第一章概述真题

16.下列程序段的时间复杂度为____________。

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

for(k=1;k<=n;k++)

s=i+j+k;

17.在数据结构中,各个结点按逻辑关系互相缠绕,任意两个结点可以邻接的结构称为____________。

16.下列程序段的时间复杂度为________。

i=0;s=0;

while(i

17.数据的逻辑结构被分为集合结构、_____、树形结构和图状结构4种。

1.数据的不可分割的最小标识单位是(  )

A.数据项B.数据记录C.数据元素D.数据变量

2.for(i=0;i

for(j=0;j

c[i][j]=0;

for(i=0;i

for(j=0;j

for(k=0;k

c[i][j]=c[i][j]+a[i][k]*b[k][j];

上列程序的时间复杂度为(  )

A.O(m+n×t)B.O(m+n+t)C.O(m×n×t)D.O(m×t+n)

16.在数据结构中,数据的存储结构有顺序存储方式、链式存储方式、_____和散列存储方式等四种。

17.作为一个算法输入的数据所含数据元素的数目,或与此数目有关的其他参数,称为______。

1.从逻辑上可以把数据结构分为(  )

A.动态结构、静态结构B.顺序结构、链式结构

C.线性结构、非线性结构D.初等结构、构造型结构

2.关于算法的描述,不正确的是(  )

A.算法最终必须由计算机程序实现

B.所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界

C.健壮的算法不会因非法的输入数据而出现莫名其妙的状态D.算法的优劣与算法描述语言无关

16.在任何问题中,数据元素都不是孤立的,它们之间总存在某种关系,通常称这种关系为_____。

17.存储结点之间通常有四种基本存储方式,即顺序存储方式、索引存储方式、_____和散列存储方式。

1.在数据结构中,数据的基本单位是()A.数据项B.数据元素C.数据对象D.数据文件

2.k=1;

for(i=0;i

for(j=0;j

A[i][j]=k++;

上述程序段的时间复杂度为()A.O(n2)B.O(n)C.O(2n)D.O

(1)

16.数据的逻辑结构通常包括集合、线性结构、____________和图状结构。

1.在数据结构中,从逻辑上可以把数据结构分成()

A.线性结构和非线性结构B.紧凑结构和非紧凑结构C.动态结构和静态结构D.内部结构和外部结构

2.for(i=0;i

for(j=0;j

A[i][j]=i*j;

上面算法的时间复杂度为()A.O(m2)B.O(n2)C.O(m×n)D.O(m+n)

16.如果操作不改变原逻辑结构的“值”,而只是从中提取某些信息作为运算结果,则称该类运算为__型运算。

3.从逻辑关系来看,数据元素的直接前驱为0个或1个的数据结构只能是(    )

A.线性结构 B.树形结构C.线性结构和树型结构 D.线性结构和图状结构

16.在数据结构中,各个结点按逻辑关系互相缠绕,任意两个结点可以邻接的结构称为_______。

17.每个存储结点只含一个数据元素,所有存储结点连续存放。

此外增设一个索引表,索引表中的索引指示各存储结点的存储位置或位置区间端点。

按这种方式组织起来的存储结构称为_______。

1.数据的基本单位是(   )A.数据项B.数据类型C.数据元素D.数据变量

2.下列程序的时间复杂度为( )

i=0;s=0;

while(s

A.O(

)B.O(

)C.O(n)D.O(n2)

16.在数据结构中,数据的逻辑结构分为集合、_____、树形结构和图状结构等四类。

17.通常从正确性、易读性、_____和高效率等4个方面评价算法(包括程序)的质量。

 1.数据结构中所定义的数据元素,是用于表示数据的(   )

 A.最小单位 B.最大单位 C.基本单位 D.不可分割的单位

 2.数据的四种基本存储结构是指(   )

 A.顺序存储结构、索引存储结构、直接存储结构、倒排存储结构

 B.顺序存储结构、索引存储结构、链式存储结构、散列存储结构

 C.顺序存储结构、非顺序存储结构、指针存储结构、树型存储结构

 D.顺序存储结构、链式存储结构、树型存储结构、图型存储结构

 16.数据表示和________________是程序设计者所要考虑的两项基本任务。

 17.一个算法通常可从正确性、易读性、健壮性和________________等四个方面评价、分析。

1.若要描述数据处理的变化过程,其正确的次序应为(     )

A.处理要求、基本运算和运算、算法B.处理要求、算法、基本运算和运算

C.基本运算和运算、处理要求、算法D.算法、处理要求、基本运算和运算

2.从运算类型角度考虑,属于引用型的运算是(     )

A.插入、删除       B.删除、修改C.查找、读取       D.查找、删除

16.算法通常可分为程序、伪语言算法和__________三种类型。

17.时间复杂性描述量级中,若某算法达到__________量级,则该算法通常是不可计算的。

1.数据的四种基本逻辑结构是指(    )

A.数组、链表、树、图形结构                 B.线性表、链表、栈队列、数组广义表

C.线性结构、链表、树、图形结构          D.集合、线性结构、树、图形结构

2.数据结构中,通常采用两种方法衡量算法的时间复杂性,即(    )

A.最大时间复杂性和最小时间复杂性   B.最好时间复杂性和最坏时间复杂性

C.部分时间复杂性和总体时间复杂性D.平均时间复杂性和最坏时间复杂性

16.根据不同的描述方式,对数据的操作运算通常可分为加工型运算和_______两种基本 类型。

17.数据结构中的算法,通常采用最坏时间复杂度和______两种方法衡量其效率。

1.要将现实生活中的数据转化为计算机所能表示的形式,其转化过程依次为(   )

A.逻辑结构、存储结构、机外表示  B.存储结构、逻辑结构、机外表示

C.机外表示、逻辑结构、存储结构  D.机外表示、存储结构、逻辑结构

2.若评价算法的时间复杂性,比较对数阶量级与线性阶量级,通常(   )

A.对数阶量级复杂性大于线性阶量级B.对数阶量级复杂性小于线性阶量级

C.对数阶量级复杂性等于线性阶量级D.两者之间无法比较

16.从数据结构的观点,数据通常可分为三个层次,即:

数据、数据元素和___________。

17.用程序设计语言、伪程序设计语言并混合自然语言描述的算法称为___________算法。

 1.下列数据组织形式中,(   )的各个结点可以任意邻接。

 A.集合       B.树形结构 C.线性结构      D.图状结构

 2.设某二维数组A[1..n,1..n],则在该数组中用顺序查找法查找一个元素的时间复杂性的量级为( 

 A.O(log2n)     B.O(n) C.O(nlog2n)      D.O(n2)

 16.下列程序段的时间复杂性量级是_____________。

  for(i=1;i

   for(j=1;j

   t=t+1;

第二章线性表第三章栈、队列、数组真题

5.长度为n的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为()

A.O

(1)B.O(1og2n)C.O(n)D.O(n2)

9.在表长为n的顺序表上做删除运算,其平均时间复杂度为()

A.O

(1)B.O(n)C.O(nlog2n)D.O(n2)

10.当利用大小为n的数组顺序存储一个队列时,该队列的最大容量为()

A.n-2B.n-1C.nD.n+1

13.循环队列存储在数组元素A[0]至A[m]中,则入队时的操作为()

A.rear=rear+1B.rear=(rear+1)%(m-1)C.rear=(rear+1)%mD.rear=(rear+1)%(m+1)

14.关于串的的叙述,不正确的是()

A.串是字符的有限序列B.空串是由空格构成的串C.替换是串的一种重要运算

D.串既可以采用顺序存储,也可以采用链式存储

15.对称矩阵A[N][N],A[1][1]为首元素,将下三角(包括对角线)元素以行优先顺序存储到一维数组元素T[1]至T[N(N+1)/2]中,则任一上三角元素A[i][j]存于T[k]中,下标k为()

A.i(i-1)/2+jB.j(j-1)/2+IC.i(j-i)/2+1D.j(i-1)/2+l

18.在单链表中,存储每个结点有两个域,一个是数据域,另一个是指针域,指针域指向该结点___的。

19.在栈结构中,允许插入的一端称为____________。

20.从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动____________个元素。

21.一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素为____________。

22.循环队列被定义为结构类型,含有三个域:

data、front和rear,则循环队列sq为空的条件是____________。

29.有一字符串的次序为-3*y+a/y!

2,试利用栈将输出次序改变为3y*-ay!

2/+,试写出进栈和退栈的操作步骤。

(用push(x)表示x进栈,pop(x)表示x退栈)

1.在表长为n的顺序表上做插入运算,平均要移动的结点数为()

A.n/4B.n/3C.n/2D.n

2.顺序表中有19个元素,第一个元素的地址为200,且每个元素占一个字节,则第14个元素的存储地址为()

A.212B.213C.214D.215

4.元素的进栈次序为A,B,C,D,E,则退栈中不可能的序列是()

A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A

6.在已知尾指针的单循环链表中,插入一个新结点使之成为首结点,其算法的时间复杂度为()A.O

(1)B.O(log2n)C.O(n)D.O(n2)

10.在线性表的下列存储结构中进行插入、删除运算,花费时间最多的是()

A.单链表B.双链表C.顺序表D.单循环链表

11.在栈中进行插入和删除操作的一端称为()

A.栈顶B.栈底C.任意位置D.指定位置

15.带表头结点链队列的队头和队尾指针分别为front和rear,则判断队空的条件为()

A.front==rearB.front!

=NULLC.rear!

=NULLD.front==NULL

18.线性表中所含结点的个数称为______。

19.向一个栈顶指针为top的链栈中插入一个新结点*p时,应执行______和top=p操作。

20.设一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的退栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少为______。

35.设顺序表va中的数据元素递增有序。

试编写算法实现将x插入到顺序表的适当位置上,以保持该表的有序性。

3.若线性表最常用的操作是存取第i个元素及其前趋的值,那么最节省操作时间的存储方式是(  )

A.单链表B.双链表C.单循环链表D.顺序表

4.设单链表中指针p指向结点A,要删除A之后的结点(若存在),则修改指针的操作为(  )

A.p—>next=p—>next—>nextB.p=p—>nextC.p=p—>next—>nextD.p—>next=p

5.向一个栈顶指针为hs的链栈中插入一个*s结点时,应执行的操作为(  )

A.hs—>next=s;B.s—>next=hs;hs=s;

C.s—>next=hs—>next;hs—>next=s;D.s—>next=hs;hs=hs—>next;

6.设循环队列的元素存放在一维数组Q[0‥30]中,队列非空时,front指示队头元素的前一个位置,rear指示队尾元素。

如果队列中元素的个数为11,front的值为25,则rear应指向的元素是(  )

A.Q[4]B.Q[5]C.Q[14]D.Q[15]

7.定义二维数组A[1‥8,0‥10],起始地址为LOC,每个元素占2L个存储单元,在以行序为主序的存储方式下,某数据元素的地址为LOC+50L,则在以列序为主序的存储方式下,该元素的存储地址为(  )

A.LOC+28LB.LOC+36LC.LOC+50LD.LOC+52L

18.在双链表中,存储一个结点有三个域,一个是数据域,另两个是指针域,分别指向____和_____。

19.在有n个元素的链队列中,入队和出队操作的时间复杂度分别为______和______。

20.在栈结构中,允许插入的一端称为______;在队列结构中,允许插入的一端称为______。

21.在循环队列中,存储空间为0~n-1。

设队头指针front指向队头元素前一个空闲元素,队尾指针指向队尾元素,那么其队空标志为rear=front,队满标志为______。

3.在单链表中,存储每个结点需要有两个域,一个是数据域,另一个是指针域,指针域指向该结点的()A.直接前趋B.直接后继C.开始结点D.终端结点

4.将两个各有n个元素的有序表合并成一个有序表,其最少的比较次数为()

A.nB.2n-1C.2nD.n2

5.栈和队列共同具有的特点是(  )

A.都是先进后出B.都是先进先出C.只允许在端点进行操作运算D.既能先进先出,也能先进后出

6.若用一个有6个单元的数组来实现循环队列,rear和front的初值分别为0和3。

则从队列中删除一个元素,再添加两个元素后,rear和front的值分别为()A.1和5B.2和4C.4和2D.5和1

7.数组A[0..5][0..5]的每个元素占5个字节,将其以列为主序存储在起始地址为1000的内存单元中,则元素A[5][5]的地址是( )A.1175B.1180C.1205D.1210

18.在一个长度为n的顺序表中第i个元素(1≤i≤n)之前插入一个元素时,需向后移动______个元素。

24.两个串是相等的,当且仅当两个串的长度相等且________的字符都相同。

34.设两个数据元素均为整型数据的线性表A=(a1,a2,…,an)和B=(b1,b2,…,bm)。

若n=m且ai=bi(i=1,2,…,n)则认为A=B;若ai=bi(i=1,2,…,j)且aj+1

试编写一个比较A和B的算法,当AB时,输出1。

要求线性表的存储结构使用链接存储。

3.线性表采用链式存储结构时,要求内存中可用存储单元的地址()

A.必须是连续的B.必须是部分连续的C.一定是不连续的D.连续和不连续都可以

4.设h是指向非空带表头结点的循环链表的头指针,p是辅助指针。

执行程序段

p=h;

while(p->next->next!

=h)p=p->next;

p->next=h;

后(其中,p->next为p指向结点的指针域),则()

A.p->next指针指向链尾结点B.h指向链尾结点C.删除链尾前面的结点D.删除链尾结点

5.设顺序表有19个元素,第一个元素的地址为200,且每个元素占3个字节,则第14个元素的存储地址为()A.236B.239C.242D.245

6.一个栈的入栈序列是a,b,c,d,e,则栈的输出序列不可能是()A.dceabB.decbaC.edcbaD.abcde

7.元素大小为1个单元,容量为n个单元的非空顺序栈中,以地址高端为栈底,以top作为栈顶指针,则出栈处理后,top的值应修改为()A.top=topB.top=n-1C.top=top-1D.top=top+1

17.设双链表中结点的前趋指针和后继指针的域名分别为t1和r1,指针s指向双链表中的一个结点(该结点既非头结点,也非尾结点),则删除s指针所指向结点的操作为“s->tl->r1=s->r1;”和“_______”。

32.如题32图所示,在栈的输入端有6个元素,顺序为A,B,C,D,E,F。

能否在栈的输出端得到序列DCFEBA及EDBFCA?

若能,给出栈操作的过程,若不能,简述其理由。

35.某带头结点的单链表的结点结构说明如下:

typedefstructnode1

{intdata;

structnode1*next

}node;

试设计一个算法intcopy(node*head1,node*head2),将以head1为头指针的单链表复制到一个不带头结点且以head2为头指针的单链表中。

3.设顺序表有9个元素,则在第3个元素前插入一个元素所需移动元素的个数为()

A.5B.6C.7D.9

4.设p为指向双向循环链表中某个结点的指针,p所指向的结点的两个链域分别用p→llink和p→rlink表示,则同样表示p指针所指向结点的表达式是()

A.p→llinkB.p→rlinkC.p→llink→llinkD.p→llink→rlink

5.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的存储地址是()

A.110B.108C.100D.120

6.设有一个栈,按A、B、C、D的顺序进栈,则可能为出栈序列的是()

A.DCBAB.CDABC.DBACD.DCAB

7.在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top为栈顶指针,则当做出栈处理时,top变化为()

A.top++B.top--C.top不变D.top=0

17.设有指针head指向不带表头结点的单链表,用next表示结点的一个链域,指针p指向与链表中结点同类型的一个新结点。

现要将指针p指向的结点插入表中,使之成为第一个结点,则所需的操作为“p→next=head;”和“________”。

18.单链表中逻辑上相邻的两个元素在物理位置上______相邻。

19.在一个长度为n的数组中删除第i个元素(1≤i≤n)时,需要向前移动的元素的个数是________。

31.如题31图所示,输入元素为A,B,C,在栈的输出端得到一个输出序列ABC,试写出在栈的输入端三个可能的输入序列。

34.下面程序段为删除循环链表中第一个info域值等于x的结点,请填上程序中缺少的部分。

循环链表的结构如题34图所示:

structnode{

intinfo;

structnode*link;

}

intDelete(structnode*head,intx)

{structnode*p,*q;/*p:

当前处理的结点;q:

p的前驱结点*/

if(!

head)return(0);

if(head→link==head)

{if(head→info==x)

{free(head);head=NULL;return(x)}

return(0);

}

p=head;q=head;

while(q→link!

=head)q=

(1);

while(p→link!

=head)

{if(p→info==x)

{

(2);

if(p==head)head=(3);

free(p);return(x);

}

else{q=p;(4);}

}

return(0);

}

1.关于栈和队列的说法中正确的是(    )

A.栈和队列都是线性结构B.栈是线性结构,队列不是线性结构

C.栈不是线性结构,队列是线性结构D.栈和队列都不是线性结构

2.关于存储相同数据元素的说法中正确的是(    )

A顺序存储比链式存储少占空间B.顺序存储比链式存储多占空间

C.顺序存储和链式存储都要求占用整块存储空间D.链式存储比顺序存储难于扩充空间

3.从逻辑关系来看,数据元素的直接前驱为0个或1个的数据结构只能是(    )

A.线性结构 B.树形结构C.线性结构和树型结构 D.线性结构和图状结构

4.已知一个单链表中,指针q指向指针p的前趋结点,若在指针q所指结点和指针p所指结点之间插入指针s所指结点,则需执行(    )

A.q→next=s;p→next=s; B.q→next=s;s→next=p;C.q→next=s;q→next=p; D.q→next=s;s→next=q;

5.在长度为n的线性表中删除一个指针p所指结点的时间复杂度是(    )

A.O(n) B.O

(1)C.O(log2n) D.O(n2)

6.设一个栈的输入序列是a,b,c,d,则所得到的输出序列(输入过程中允许出栈)不可能出现的是(    )

A.a,b,c,d B.a,b,d,cC.d,c,b,a D.c,d,a,b

7.关于串的叙述中,正确的是(    )

A.空串是只含有零个字符的串B.空串是只含有空格字符的串

C.空串是含有零个字符或含有空格字符的串D.串是含有一个或多个字符的有穷序列

8.在具有m个单元的循环队列中,队头指针为front,队尾指针为rear,则队满的条件是(    )

A.front==rear B.(front+1)%m==rearC.rear+1==front D.(rear+1)%m==front

9.设有二维数组A[n][n]表示如下

,则A[i][i](0≤i≤n-1)的值为(    )

A.i*(i-1)/2 B.i*(i+1)/2C.(i+2)*(i+1)/2 D.i2/2

18.在顺序表上读表元算法的时间复杂度为_______。

19.双链表中前驱指针为prior,后继指针为next,在指针P所指结点前插入指针S所指的结点,需执行下列语句:

S→next=P;S→prior=P→prior;P→prior=S;_______;

20.设数组A[0..8][0..8]的起始元素位置为a,每个元素占2L个存储单元,按行序为主序存储。

若元素A[i][j]的存储位置为a+66L,则元素A[j][i]的存储位置为_______。

29.有一字符串序列为5*-x-y/x+2,利用栈的运算将其输出结果变为5x-*yx+/-2,试写出该操作的入栈和出栈过程(采用push(a)表示a入栈,pop(a)表示a出栈)。

34.设单链表的结点结构如下:

structnode{datatypedata;

structnode*next;

}

试编写一个函数intcount(structnode*head,datatypex

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1