数据结构练习题与答案

数据结构练习题与答案
数据结构练习题与答案

第1章绪论

一、判断题

1.数据的逻辑结构与数据元素本身的内容和形式无关。(√)

2.一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。(√)

3.数据元素是数据的最小单位。(×)

4.数据的逻辑结构和数据的存储结构是相同的。(×)

5.程序和算法原则上没有区别,所以在讨论数据结构时可以通用。(×)

6.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。(√)

7.数据的存储结构是数据的逻辑结构的存储映象。(√)

8.数据的物理结构是指数据在计算机内实际的存储形式。(√)

9.数据的逻辑结构是依赖于计算机的。(×)

10.算法是对解题方法和步骤的描述。(√)

二、填空题

1.数据有逻辑结构和存储结构两种结构。

2.数据逻辑结构除了集合以外,还包括线性结构、树形结构和图形结构。

3.数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。

4.树形结构和图形结构合称为非线性结构。

5.在树形结构中,除了树根结点以外,其余每个结点只有1个前驱结点。

6.在图形结构中,每个结点的前驱结点数和后继结点数可以任意多个。

7.数据的存储结构又叫物理结构。

8.数据的存储结构形式包括顺序存储、链式存储、索引存储和散列存储。

9.线性结构中的元素之间存在一对一的关系。

10.树形结构中的元素之间存在一对多的关系。

11.图形结构的元素之间存在多对多的关系。

12.数据结构主要研究数据的逻辑结构、存储结构和算法(或运算)3个方面的内容。

13.数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系有限集合。

14.算法是一个有穷指令的集合。

15.算法效率的度量可以分为事先估算法和事后统计法。

16.一个算法的时间复杂度是算法输入规模的函数。

17.算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模的n的函数。

18.若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为O(nlog2n)。

19.若一个算法的语句频度之和为T(n)=3n+nlog2+n2,则算法的时间复杂度为O(n)。

20.数据结构是一门研究非数值计算的程序问题中计算机的操作对象,以及它们之间的关系和运算的学

科。

三、选择题

1.数据结构通常是研究数据的(A)及它们之间的相互关系。

A.存储结构和逻辑结构B.存储和抽象C.联系和抽象D.联系与逻辑

2.在逻辑上可以把数据结构分成(C)。

A.动态结构和静态结构B.紧凑结构和非紧凑结构

C.线性结构和非线性结构D.内部结构和外部结构。

3.数据在计算机存储内表示时,物理地址和逻辑地址相同并且是连续的,称之为(C)。

A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构

4.非线性结构中的每个结点(D)。

A.无直接前驱结点.B.无直接后继结点.

C.只有一个直接前驱结点和一个直接后继结点D.可能有多个直接前驱结点和多个直接后继结点5.链式存储结构所占存储空间(A)。

A.分两部分,一部分存放结点的值,另一个部分存放表示结点间关系的指针。

B.只有一部分,存放结点的值。C.只有一部分,存储表示结点间关系的指针。

D.分两部分,一部分存放结点的值,另一部分存放结点所占单元素

6.算法的计算量大小称为算法的(C)。

A.现实性B.难度C.时间复杂性D.效率

7.数据的基本单位(B)。

A.数据结构B.数据元素C.数据项D.文件

8.每个结点只含有一个数据元素,所有存储结点相继存放在一个连续的存储空间里,这种存储结构称为

(A)结构。

A.顺序结构B.链式结构C.索引结构D.散列结构

9.每一个存储结点不仅含有一个数据元素,还包含一组指针,该存储方式是(B)。

A.顺序B.链式C.索引D.散列

10.以下任何两个结点之间都没有逻辑关系的是(D)。

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

11.在数据结构中,与所使用的计算机无关的是(C)。

A.物理结构B.存储结构C.逻辑结构D.逻辑和存储结构12.下列4种基本逻辑结构中,数据元素之间关系最弱的是(A)。

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

13.与数据元素本身的形式、内容、相对位置、个数无关的是数据的(A)。

A.逻辑结构B.存储结构C.逻辑实现D.存储实现

14.每一个存储结点只含有一个数据元素,存储结点存放在连续的存储空间,另外有一组指明结点存储位

置的表,该存储方式是(C)存储方式。

A.顺序B.链式C.索引D.散列

15.算法能正确的实现预定功能的特性称为算法的(A)。

A.正确性B.易读性C.健壮性D.高效性

16.算法在发生非法操作时可以作出相应处理的特性称为算法的(C)。

A.正确性B.易读性C.健壮性D.高效性

17.下列时间复杂度中最坏的是(D)。

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

18.下列算法的时间复杂度是(D)。

for(i=0;i

for(j=o;i

c[i][j]=i+j;

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

19.算法分析的两个主要方面是(A)。

A.空间复杂性和时间复杂性

B.正确性和简明性

C.可读性和文档性

D.数据复杂性和程序复杂性

20.计算机算法必须具备输入、输出和(C)。

A.计算方法

B.排序方法

C.解决问题的有限运算步骤

D.程序设计方法

第2章线性表

一、判断题

1.线性表的链式存储结构优于顺序存储。(×)

2.链表的每个结点都恰好包含一个指针域。(×)

3.在线性表的链式存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。(√)

4.顺序存储方式的优点是存储密度大,插入、删除效率高。(×)

5.线性链表的删除算法简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前

移动。(×)

6.顺序表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。(×)

7.线性表链式存储的特点是可以用一组任意的存储单元存储表中的数据元素。(√)

8.线性表采用顺序存储,必须占用一片连续的存储单元。(√)

9.顺序表结构适宜进行顺序存取,而链表适宜进行随机存取。(×)

10.插入和删除操作是数据结构中是最基本的两种操作,所以这两种操作在数组中也经常使用。(×)

二、填空题

1.顺序表中逻辑上相邻的元素在物理位置上必须相邻。

2.线性表中结点的集合是有限的,结点间的关系是一对一关系。

3.顺序表相对于链表的优点是节省存储和随机存取。

4.链表相对于顺序表的优点是插入、删除方便。

5.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快速度存取线性表中的

元素时,应采用顺序存储结构。

6.顺序表中访问任意一个结点的时间复杂度均为O(1)。

7.链表相对于顺序表的优点是插入、删除方便;缺点是存储密度小。

8.在双向链表中要删除已知结点*P,其时间复杂度为O(1)。

9.在单向链表中要在已知结点*P之前插入一个新结点,需找到*P的直接前驱结点的地址,其查找的

时间复杂度为O(n)。

10.在单向链表中需知道头指针才能遍历整个链表。

11.线性表中第一个结点没有直接前驱,称为开始结点。

12.在一个长度为n的顺序表中删除第i个元素,要移动n-i 个元素。

13.在一个长度为n的顺序表中,如果要在第i个元素前插入一个元素,要后移n-i+1 个元素。

14.在无头结点的单向链表中,第一个结点的地址存放在头指针中,而其他结点的存储地址存放在

前趋结点的指针域中。

15.线性表的元素总数不确定,且经常需要进行插入和删除操作,应采用链子存储结构。

16.在线性表中的链式存储中,元素之间的逻辑关系是通过指针决定。

17.在双向链表中,每个结点都有两个指针域,它们一个指向其前趋结点,另一个指向其后继结

点。

18.对一个需要经常进行插入和删除操作的线性表,采用链式存储结构为宜。

19.双向链表中,设P是指向其中待删除的结点,则需要执行的操作为p->prior->next=p->next;

p->next->prior=p->prior

20.在如图所示的链表中,若在指针P所在的结点之后插入数据域值为a和b的两个结点,则可用语

句S->next->next=p->next和P-> next=S;来实现该操作。

三、选择题

1.在具有n个结点的单向链表中,实现(A)的操作,其算法的时间复杂度都是O(n).

A.遍历链表或求链表的第i个结点

B.在地址为P的结点之后插入一个结点

C.删除开始结点

D.删除地址为P的结点的后继结点

2.设a、b、c为3个结点,p、10、20分别代表它们的地址,则如下的存储结构称为(B )。

p

A.循环链表B.单向链表C.双向循环链表D.双向链表

3.单向链表的存储密度(C )。

A.大于1

B.等于1

C.小于1

D.不能确定

4.已知一个顺序存储的线性表,设每个结点占m个存储单元,若第一个结点的地址为B,则第i个结点

的地址为(A )。

A.B+(i-1)×m

B.B+i×m

C.B-i×m

D.B+(i+1)×m

5.在有n个结点的顺序表上做插入、删除结点运算的时间复杂度为( B )。

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

6.设front、rear分别为循环双向链表结点的左指针和右指针,则指针P所指的元素是双循环链表L的

尾元素的条件是(D )。

A.P= =L

B.P->front= =L

C.P= =NULL

D.P->rear= =L

7.两个指针P和Q,分别指向单向链表的两个元素,P所指元素是Q所指元素前驱的条件是( B )

A.P->next= =Q->next B.P->next= =Q C.Q->next= =P D.P==Q

8.用链表存储的线性表,其优点是( C )。

A.便于随机存取B.花费的存储空间比顺序表少

C.便于插入和删除D.数据元素的物理顺序与逻辑顺序相同

9.在单链表中,增加头结点的目的是(C )。

A.使单链表至少有一个结点B.标志表中首结点的位置

C.方便运算的实现D.说明该单链表是线性表的链式存储结构

10.下面关于线性表的叙述中,错误的是(D )关系。

A.顺序表必须占一片地址连续的存储单元B.顺序表可以随机存取任一元素

C.链表不必占用一片地址连续的存储单元D.链表可以随机存取任一元素

11.L是线性表,已知LengthList(L)的值是5,经DelList(L,2)运算后,LengthList(L)的值是(C )。A.2 B.3 C.4 D.5

12.单向链表的示意图如下:

指向链表Q结点的前驱的指针是(B )。

A.L B.P C.Q D.R

13.设p为指向单循环链表上某结点的指针,则*p的直接前驱(C )。

A.找不到B.查找时间复杂度为O(1)

C.查找时间复杂度为O(n)D.查找结点的次数约为n

14.等概率情况下,在有n个结点的顺序表上做插入结点运算,需平均移动结点的数目为(8 )。

A.n B.(n-1)/2 C.n/2 D.(n+1)/2

15.在下列链表中不能从当前结点出发访问到其余各结点的是(C )。

A.双向链表

B.单循环链表

C.单向链表

D.双向循环链表

16.在顺序表中,只要知道(D ),就可以求出任一结点的存储地址。

A.基地址

B.结点大小

C.向量大小

D.基地址和结点大小

17.在双向链表中做插入运算的时间复杂度为(A )。

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

18.链表不具备的特点是(A )。

A.随机访问 B.不必事先估计存储空间C. 插入删除时不需要移动元素D.所需空间与线性表成正比

19.以下关于线性表的论述,不正确的为(C )。

A.线性表中的元素可以是数字、字符、记录等不同类型

B.线性顺序表中包含的元素个数不是任意的

C.线性表中的每个结点都有且仅有一个直接前驱和一个直接后继

D.存在这样的线性表,即表中没有任何结点

20.在(B )的运算中,使用顺序表比链表好。

A.插入

B.根据序号查找

C.删除

D.根据元素查找

第3章栈

一、判断题

1.栈是运算受限制的线性表。(√)

2.在栈空的情况下,不能作出栈操作,否则产生下溢。(√)

3.栈一定是顺序存储的线性结构。(×)

4.栈的特点是“后进先出”。(√)

5.空栈就是所有元素都为0的栈。(×)

6.在C(或C++)语言中设顺序栈的长度为MAXLEN,则top=MAXLEN时表示栈满。(×)

7.链栈与顺序栈相比,其特点之一是通常不会出现栈满的情况。(√)

8.一个栈的输入序列为:A,B,C,D,可以得到输出序列:C,A,B,D。(×)

9.递归定义就是循环定义。(×)

10.将十进制数转换为二进制数是栈的典型应用之一。(√)

二、填空题

1.在栈结构中,允许插入、删除的一端称为栈顶。

2.在顺序栈中,当栈顶指针top=-1时,表示栈空。

3.在有n个元素的栈中,进栈操作时间复杂度为O(1)。

4.在栈中,出栈操作时间复杂度为O(1)。

5.已知表达式,求它的后缀表达式是栈的典型应用。

6.在一个链栈中,若栈顶指针等于NULL,则表示栈空。

7.向一个栈顶指针为top的链栈插入一个新结点*p时,应执行p->next=top;top=p;操作。

8.顺序栈S存储在数组S->data[0…MAXLEN-1]中,进栈操作时要执行的语句有:S->top++。(或

S->top+1)

S->data[S->top]=x

9.链栈LS,指向栈顶元素的指针是LS->next。

10.从一个栈删除元素时,首先取出栈顶元素,然后再移动栈顶指针。

11.由于链栈的操作只在链表的头部进行,所以没有必要设置头结点。

12.已知顺序栈S,在对S进栈操作之前首先要判断栈是否满。

13.已知顺序栈S,在对S出栈操作之前首先要判断栈是否空。

14.若内在空间充足,链栈可以不定义栈满运算。

15.链栈LS为空的条件是LS->next=NULL 。

16.链栈LS的栈顶元素是链表的首元素。

17.同一栈的各元素的类型相同。

18.若进栈的次序是A、B、C、D、E,执行3次出栈操作以后,栈顶元素为 B 。

19.A+B/C-D*E的后缀表达式是ABC/+DE*- 。

20.4个元素A、B、C、D顺序进S栈,执行两次Pop(S,x)运算后,x的值是 C 。

三、选择题

1.插入和删除操作只能在一端进行的线性表,称为(C )。

A.队列B.循环队列C.栈D.循环栈

2.设有编号为1,2。3,4的4辆列车,顺序进入一个栈结构的站台,下列不可能的出站顺序为(D)。

A.1234 B.1243 C.1324 D.1423

3.如果以链表作为栈的存储结构,则出栈操作时(B )。

A.必须判别栈是否满B.必须判别栈是否为空C.必须判别栈元素类型D.栈可不做任何判别4.元素A、B、C、D依次进栈以后,栈顶元素是(D )

A.A B.B C.C D.D

5.顺序栈存储空间的实现使用(B )存储元素。

A.链表B.数组C.循环链表D.变量

6.在C(或C++)语言中,一个顺序栈一旦被声明,其占用空间的大小(A )。

A.已固定B.不固定C.可以改变D.动态变化

7.带头结点的链栈LS的示意图如下,栈顶元素是( A )。

A.A B.B C.C D.D

8.链栈与顺序栈相比,有一个比较明显的优点是( B )。

A.插入操作更加方便

B.通常不会出现栈满的情况

C.不会出现栈空的情况

D.删除操作更加方便

9.从一个栈顶指针为top的链栈中删除一个结点时,用x保存被删除的结点,应执行下列(d )命令。

A.x=top;top->next; B.top=top->next;x=top->data

C.x=top->data;

D.x=top->data;top=top->next

10.在一个栈顶指针为HS的链栈中,将一个S指针所指的结点入栈,应执行下列( B )命令。

A.HS->next=S

B.S->next=HS->next;HS->next=S;

C.S->next=HS->next;HS=S;

D.S->next=HS=HS->next

11.4元素按A、B、C、D顺序进S栈,执行两次Pop(S,x)运算后,栈顶元素的值是( B )。

A.A B.B C.C D.D

12.元素A、B、C、D依次进栈以后,栈底元素是(A )。

A.A B.B C.C D.D

13.经过下列栈的运算后,再执行ReadTop(s)的值是( A )。

InitStack(s);Push(s,a); Push(s,b);Pob(s);

A. a

B.b

C.1

D.0

14.经过下列栈的运算后,x的值是(B )。

InitStack(s)(初始化栈); Push(s,a); Push(s,b); ReadTop(s) ;Pob(s,x);

A. a

B.b

C.1

D.0

15.经过下列栈的运算后,x的值是( B )。

InitStack(s)(初始化栈); Push(s,a); Pob(s,x); Push(s,b); Pob(s,x);

A.a

B.b

C.1

D.0

16.经过下列栈的运算后,SEmpty(s)的值是( C )。

InitStack(s)(初始化栈); Push(s,a); Push(s,b); Pob(s,x); Pob(s,x);

A.a

B.b

C.1

D.0

17.向顺序栈中输入元素时(B )。

A.先存入元素,后移动栈顶指针B.先移动栈顶指针,后存入元素

C.谁先谁后无关紧要D.同时进行

18.初始化一个空间大小为5的顺序栈S后,S->top的值是(B )。

A.0 B.-1 C.不再改变D.动态变化

19.设有一个入栈的次序A、B、C、D、E,则栈不可能的输出序列是( C )。

A.EDCBA B.DECBA C.DCEAB D.ABCDE

20.设有一个顺序栈S,元素A、B、C、D、E、F依次进栈,如果6个元素出栈的顺序是B、D、C、F、

E、A,则栈的容量至少应是(A )。

A.3 B.4 C.5 D.6

第4章队列

一、判断题

1.队列是限制在两端进行操作的线性表。(√)

2.判断顺序队列为空的标准是头指针和尾指针都指向同一个结点。(√)

3.在链队列上做出队操作时,会改变front指针的值。(×)

4.在循环队列中,若尾指针rear大于头指针front,其元素个数为rear-front。(√)

5.在单向循环链表中,若头指针为h,那么p所指结点为尾结点的条件是p=h。(×)

6.链队列在一定范围内不会出现队满的情况。(√)

7.在循环链队列中无溢出现象。(×)

8.栈和队列都是顺序存储的线性结构。(×)

9.在队列中允许删除的一端称为队尾。(×)

10.顺序队和循环队关于队满和队空的判断条件是一样的。(×)

二、填空题

1.在队列中存取数据应遵循的原则是先进先出。

2.队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算线性表。

3.在队列中,允许插入的一端称为队尾。

4.在队列中,允许删除的一端称为队首(或队头)。

5.队列在进行出队操作时,首先要判断队列是否为空。

6.顺序队列在进行入队操作时,首先在判断队列是否为满。

7.顺序队列初始化后,初始化后,front=rear= -1 。

8.解决顺序队列“假溢出”的方法是采用循环队列。

9.循环队列的队指针为front,队尾指针为rear,则队空的条件为front= =rear 。

10.链队列LQ为空时,LQ->front->next= NULL 。

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

12.设长度为n的链队列用单循环表表示,若只设尾指针,则入队操作的时间复杂度为O(1) 。

13.在一个链队列中,若队首指针与队尾指针的值相同,则表示该队列为空。

14.设循环队列的头指针front指向队首元素,尾指针rear指向队尾元素后的一个空闲元素,队列的最大

空间为MAXLEN,则队满标志为front= =(rear+1)%MAXLEN 。

15.在一个链队列中,若队首指针为front,队尾指针为rear,则判断队列只有一个结点的条件为front=

=rear或front!。

16.向一个循环队列中插入元素时,首先要判断队尾指针,然后再向指针所指的位置写入新的数据。

17.读队首元素的操作不改变或不影响队列元素的个数。

18.设循环队列的容量为40(序号0~39),现经过一系列的入队和出队的运算后,front=11,rear=19,

则循环队列中还有8 个元素。

19.队列Q,经过下列运算:InitQueue(Q)(初始化队列);InQueue(Q,a);InQueue(Q,b);

OutQueue(Q,x);ReadFront(Q,x);QEmpty(Q);后的值是8 。

20.队列Q经过InitQueue(Q)(初始化队列);InQueue(Q,a);InQueue(Q,b);ReadFront(Q,x)后,x

的值是 a 。

三、选择题

1.队列是限定在(D)进行操作的线性表。

A.中间者 B.队首 C.队尾 D.端点

2.队列中的元素个数是(B)。

A.不变的 B.可变的 C.任意的 D.0

3.同一队列内的各元素的类型(A)。

数据结构书面作业练习题

书面作业练习题 李英龙 湖南科技大学数学与计算科学学院

内容简介 在习题部分,既有选择题、判断题,也有用图表解答的练习题、算法设计题或综合解答分析题。并且配有部分练习题的答案供学生自学、练习、参考。 目录 书面作业练习题 习题一绪论 -------------------------------------------------------------3 习题二顺序表示(线性表、栈和队列)-----------------------------------------6 习题三链表(线性表、栈和队列)---------------------------------------------9 习题四串-----------------------------------------------------------------12 习题五数组 --------------------------------------------------------------13 习题六树与二叉树 -------------------------------------------------------15 习题七图-----------------------------------------------------------------24 习题八查找---------------------------------------------------------------30 习题九排序---------------------------------------------------------------33

数据结构选择题集锦

单项选择 ( B ) 1. 通常所说的主机是指∶ A) CPU B) CPU和内存C) CPU、内存与外存D) CPU、内存与硬盘 ( C )2. 在计算机内部,一切信息的存取、处理和传送的形式是∶ A) ACSII码B) BCD码C)二进制D)十六进制 ( D )3. 软件与程序的区别是∶ A)程序价格便宜、软件价格昂贵; B)程序是用户自己编写的,而软件是由厂家提供的; C) 程序是用高级语言编写的,而软件是由机器语言编写的; D) 软件是程序以及开发、使用和维护所需要的所有文档的总称,而程序只是软件的一部分。 ( C )4. 所谓“裸机”是指∶ A) 单片机B)单板机C) 不装备任何软件的计算机D) 只装备操作系统的计算机 ( D )5. 应用软件是指∶ A)所有能够使用的软件B) 能被各应用单位共同使用的某种软件 C)所有微机上都应使用的基本软件D) 专门为某一应用目的而编制的软件 (A)6. C语言中的常量可分为整型常量、实型常量、字符型常量及(枚举)四种。 (A)符号常量(B)长整型常量(C)逻辑常量(D)二进制整数 ( C )7. 编译程序的功能是∶ A)发现源程序中的语法错误B)改正源程序中的语法错误 C)将源程序编译成目标程序D)将某一高级语言程序翻译成另一种高级语言程序 (A)8. 系统软件中最重要的是∶ A) 操作系统B) 语言处理系统C) 工具软件D) 数据库管理系统 ( C )9. 可移植性最好的计算机语言是∶ A) 机器语言B)汇编语言C) 高级语言D) 自然语言

( B )10. 非线性结构是数据元素之间存在一种: A)一对多关系B)多对多关系C)多对一关系D)一对一关系 ( C )11. 数据结构中,与所使用的计算机无关的是数据的结构; A) 存储B) 物理C) 逻辑D) 物理和存储 ( C )12. 算法分析的目的是: A) 找出数据结构的合理性B) 研究算法中的输入和输出的关系 C) 分析算法的效率以求改进D) 分析算法的易懂性和文档性 (A)13. 算法分析的两个主要方面是: A) 空间复杂性和时间复杂性B) 正确性和简明性 C) 可读性和文档性D) 数据复杂性和程序复杂性 ( C )14. 计算机算法指的是: A) 计算方法B) 排序方法C) 解决问题的有限运算序列D) 调度方法 ( B )15. 计算机算法必须具备输入、输出和等5个特性。 A) 可行性、可移植性和可扩充性B) 可行性、确定性和有穷性 C) 确定性、有穷性和稳定性D) 易读性、稳定性和安全性 ( C )16.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为: (A)存储结构(B)逻辑结构(C)顺序存储结构(D)链式存储结构 ( B )17.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是 (A)110 (B)108 (C)100 (D)120 (A)18. 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:(A)访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) (B)在第i个结点后插入一个新结点(1≤i≤n) (C)删除第i个结点(1≤i≤n) (D)将n个结点从小到大排序 ( B )19. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动个元素 (A)8 (B)63.5 (C)63 (D)7 (A)20. 链接存储的存储结构所占存储空间: (A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针

数据结构试题库答案

数据结构试题及答案 一、单项选择题 (1)一个算法应该就是()。 A)程序???B)问题求解步骤得描述 C)要满足五个基本属性??D) A与C (2)算法指得就是()。 A)计算机程序???B)解决问题得计算方法 C)排序算法???D)解决问题得有限运算序列。 (3)与数据元素本身得形式、内容、相对位置、个数无关得就是数据得()。 A) 存储结构B) 逻辑结构C)算法D)操作 (4)从逻辑上可以把数据结构分为( )两大类。 A)动态结构、静态结构??B) 顺序结构、链式结构 C)线性结构、非线性结构???D)初等结构、构造型结构 (5)下列叙述中正确得就是()。 A)一个逻辑数据结构只能有一种存储结构 B)数据得逻辑结构属于线性结构,存储结构属于非线性结构 C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理得效率 D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理得效率 (6)数据得基本单位就是() ?A) 数据项??B) 数据类型C)数据元素??D)数据变量 (7)下列程序得时间复杂度为() i=0;s=0; while(s

数据结构模拟题(开卷)

《数据结构》模拟题(补) 一.单项选择题 1.在线性表的下列存储结构中,读取元素花费时间最少的是【】。 A.单链表B.双链表C.顺序表D.循环链表 2.设计一个判定表达式中左、右括号是否配对出现的算法,采用【】数据结构最佳。 A.集合B.线性表C.队列D.栈 3.n个结点的线索二叉树上含有的线索数为【】。 A.2n B.n-1 C.n D.n+1 4.设广义表D=(a,(b,c)),则tail(D)=【】。 A.b,c B.(b,c) C.((b,c)) D.c 5.由4个结点可以构造出【】种不同的二叉树。 A.12 B.13 C.14 D.15 6.在栈中,出栈操作的时间复杂度为【】。 A.O(1) B.O(n) C.O(log2n) D.O(n2) 7.假设Q[0..len-1]表示循环队列,f为队头指针,r为队尾指针,则进队操作语句是【】。 A.f=f+1 B.r=r+1 C.f=(f+1)%len D.r=(r+1)%len 8.一个n*n的对称矩阵,如果以行或列为主序放入内存,则其容量为【】。 A.n*n B.n*n/2 C.n*(n+1)/2 D.(n+1)*(n+1)/2 9.队列操作的原则是【】。 A.进优于出B.出优于进C.先进先出D.后进先出 10.下列数据结构中,【】是非线性数据结构。 A.栈B.串C.队列D.树 11.两个指针p和q,分别指向单链表的两个元素,p所指元素是q所指元素的前驱,则【】。 A.p==q B.q->next=p C.p->next=q D.p->next=q->next 12.数组A中,每个元素的长度为4个字节,行下标i从1到5,列下标j从1到4,从首 地址SA开始连续存放在存储器内,该数组按行存放时,元素A[3][2]的起始地址为【】。 A.SA+20 B.SA+36 C.SA+40 D.SA+45 13.已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为d1, 则第i个结点的地址为【】。 A.d1+(i-1)*m B.d1+i*m C.d1+(i+1)m D.d1-i*m 14.分析下列算法suanfa1(n)的时间复杂度是【】。 void suanfa1(int n) { int i,j,x=1; for(i=0;i

(完整版)数据结构练习题(含答案)

数据结构练习题 习题1 绪论 1.1 单项选择题 1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。 ① A.操作对象B.计算方法C.逻辑结构D.数据映象 ② A.存储结构B.关系C.运算D.算法 2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②有限集合。 ① A.算法B.数据元素C.数据操作D.数据对象 ② A.操作B.映象C.存储D.关系 3. 在数据结构中,从逻辑上可以把数据结构分成。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 4. 算法分析的目的是①,算法分析的两个主要方面是②。 ① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 ② A. 空间复杂性和时间复杂性 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。 ① A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法 ② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 1.2 填空题(将正确的答案填在相应的空中) 1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。 2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。 3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。 4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。 5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。 6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。 7. 分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是__ __。 for (i=0;i

《数据结构》期末考试题及答案

2011-2012学年第一学期期末考查 《数据结构》试卷 (答案一律写在答题纸上,在本试卷上做答无效) 一、选择(每题1分,共10分) 1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D) A.O(0) B.O(1) C.O(n) D.O(n2) 2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D) A.543612 B.453126 C.346512 D.234156 3.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B ) A.8 B.9 C.10 D.11 4.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是( B ) A. m-n B.m-n-1 C.n+1 D.m+n 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B) A.9 B.11 C.15 D.不确定 6.下列哪一个方法可以判断出一个有向图是否有环。(A) A.深度优先遍历 B.拓扑排序 C.求最短路径 D.求关键路径 7.第7层有10个叶子结点的完全二叉树不可能有(B )个结点。 A.73 B.234 C.235 D.236 8.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B) A.(100,80,90,60,120,110,130) B.(100, 120, 110,130,80, 60,90) C.(100,60,80,90,120,110,130) D.(100,80, 60,90, 120, 130,110) 9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是(B ) A.选择排序 B.起泡排序 C.快速排序 D.插入排序 10.对线性表进行折半查找时,要求线性表必须(D) A.以顺序方式存储 B.以顺序方式存储,且数据元素有序

《数据结构》题库及答案

《数据结构》题库及答案 一、选择题 1.线性表的顺序存储结构是一种 的存储结构,线性表的链式存储结构是一种 的存储结构。 a. 随机存储; b.顺序存储; c. 索引存取; d. HASH 存取 2.一个栈的入栈序列是a,b,c,d,e ,则栈的不可能的输出序列是 。 a. edcba; b. decba; c. dceab; d.abcde 3.一个队列的入队序列是1,2,3,4,则队列的输出序列是 。 a. 4,3,2,1; b. 1,2,3,4; c. 1,4,3,2; d.3,2,4,1 4.在一个单链表中,已知p 结点是q 结点的直接前驱结点,若在p 和q 之间插入结点s ,则执行的操作是 。 a. s->nxet=p->next; p->next=s; b. p->next=s->next; s->next=p; c. q->next=s; s->next=p; d. p->next=s; s->next=q; 5.设有两个串p,q ,求q 在p 中首次出现的位置的运算称作 。 a.联接 b.模式匹配 c.求子串 d.求串长 6.二维数组M 的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i 的范围从0到8,列下标j 的范围从1到10,则存放M 至少需要 个字节。 a. 90 b.180 c.240 d.540 7.在线索二叉树中,结点p 没有左子树的充要条件是 。 a. p->lch==NULL b. p->ltag==1 c. p->ltag==1且p->lch=NULL d. 以上都不对 8.在栈操作中,输入序列为(A ,B ,C ,D ),不可能得到的输出序列为:______ A 、(A , B , C , D ) B 、(D ,C ,B ,A ) C 、(A ,C ,D ,B ) D 、(C ,A ,B ,D ) 9.已知某二叉树的后序序列是dabec ,中序序列是debac ,则它的先序序列是 。 A 、acbed B 、decab C 、deabc D 、cedba 10.设矩阵A 是一个对称矩阵,为了节省存储空间,将其下三角部分(见下图)按行序存放在一维数组B[1..n(n-1)/2]中,对任一上三角部分元素)(j i a ij ,在一维数组B 的存放位置是 。

数据结构模拟试题及答案

数据结构模拟试题一 一、判断题(每小题1 分,共15分) 1.计算机程序处理的对象可分为数据和非数据两大类。 2.全体自然数按大小关系排成的序列是一个线性表。 3.在描述单向链表的结点类型时,必须首先描述数值字段,然后再描述指针字段。 4.顺序栈是一种规定了存储方法的栈。 5.树形结构中的每个结点都有一个前驱。 6.在任何一棵完全二叉树中,最多只有一个度为1的分支结点。 7.若某顶点是有向图的根,则该顶点的入度一定是零。 8.如果某图的邻接矩阵有全零的行,没有全零的列,则该图一定是有向图。 9.用一维数组表示矩阵可以节省存储空间。 10.广义表的长度与广义表中含有多少个原子元素有关。 11.分块查找的效率与线性表被分成多少块有关。 12.散列表的负载因子等于存入散列表中的结点个数。 13.在起泡排序过程中,某些元素可能会向相反的方向移动。 14.按某种逻辑关系组织起来的记录的集合称为逻辑记录。 15.索引非顺序文件的特点是索引表中的索引项不一定按关键字大小有序排列。 二、填空题(每空1分,共15分) 1.顺序表是一种_____________线性表。 2.若用Q[1]~Q[m]作为非循环顺序队列的存储空间,则对该队列最多只能执行___次插入操作。 3.栈和队列的区别在于________的不同。 4.在高度为h(h≥0)的二叉树中至少有___个结点,至多有___个结点。 5.若用二叉链表来存储具有m个叶子,n个分支结点的树,则二叉链表中有___个左指针域为空的结点,有___个右指针域 为空的结点。 6.n个顶点的有根有向图中至少有___条边,至多有___条边。 7.10行20列矩阵若用行优先顺序表来表示,则矩阵中第8行第7列元素是顺序表中第___个元素。 8.在各元素查找概率相等的情况下,用顺序查找方法从含有12个元素的有序表中查找一个元素,元素间的平均比较次数是 _____。 9.在归并两个长度为m的有序表时,排序码的比较次数至少是___次,至多是___次。 10.在高度为3的6阶B-树中,至少有___个关键字,至多有___个关键字。 三、选择题(每题2分,共30分) 1.计算机所处理的数据一般具有某种内在联系性,这是指________。 A.元素和元素之间存在某种关系B.数据和数据之间存在某种关系 C.元素内部具有某种结构D.数据项和数据项之间存在某种关系 2. 假设顺序表目前有4个元素,第i个元素放在R[i]中,1≤i≤4 。若把新插入元素存入R[6],则________。 A.会产生运行错误B.R[1]~R[6]不构成一个顺序表 C.顺序表的长度大于顺序表元素个数,会降低存储空间利用率 D.顺序表元素序号和数组元素下标不一致,会给使用带来麻烦 3. 设H是不带表头结点循环单向链表的表头指针,P是和H同类型的变量。当P指向链表最后一个结点时,_________。A.P所指结点指针字段的值为空B.P的值与H的值相等 C.P所指结点的地址与H的值相等D.P所指结点指针字段的值与H的值相等 4. 栈的定义不涉及数据的__________。 A.逻辑结构B.存储结构C.运算D.逻辑结构和存储结构 5. 设5个元素进栈的顺序是1,2,3,4,5,则出栈的顺序有可能是___________。 A.2,4,1,3,5 B.3,4,1,5,2 C.3,2,4,1,5 D.4,1,3,2,5 6. 若某棵二叉树结点的前序序列和中序序列相同,则该二叉树_________。 A.只有一个结点B.每个结点都没有左孩子C.每个结点都没有右孩子D.不存在 7.对于一棵具有n个结点,度为3的树来说,____________。 A.树的高度至多是n-3 B.树的高度至多是n-2 C.树的最低高度是┏log3(n+1)┓ D.至少在某一层上正好有3个结点 8.n个顶点的有向图如果可以进行拓扑排序,则可以断定该有向图__________。 A.含n个强连通分量B.有唯一的入度为0的顶点C.有多个出度为0的顶点 D.是一个有根有向图 9. 特殊矩阵用行优先顺序表表示,_____________ A.简化了矩阵元素之间的逻辑关系B.便于按行处理矩阵元素

数据结构复习题及答案

复习题(一) 一.填空题(每空1分,共15分) 1.一个算法的效率可分为___________________效率和___________________效率。 2.__________________是被限定为只能在表的一端进行插入运算,在表的另一端 进行删除运算的线性表。 3.设S=“A;/document/Mary.doc”,则strlen(S)= _______________,“/”的字符定位 的位置为_______________。 4.设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列 序为主序顺序存储,则元素a[32,58]的存储地址为_______________。 5.一棵深度为6的满二叉树有_______________个分支结点和_______________个 叶子。 6.用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度 是。 7.设有一稀疏图G,则G采用存储较省空间。 8.快速排序算法是对算法的一种改进。 9.在数据的存放无规律而言的线性表中进行检索的最佳方法 是。 10.大多数排序算法都有两个基本的操作: 和。 11.设要将序列(Q, H, C, Y, P, A, M, S, R, D, F, X)中的关键码按字母序的升序重 新排列,则:快速排序一趟扫描的结果是。 二.选择题(每题2分,共30分) ()1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为: (A)存储结构(B)逻辑结构(C)顺序存储结构(D)链式存储结构 ()2. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要

数据结构选择题复习

1.数据逻辑结构包括线性结构、树形结构和图状结构三种类型,树形结构和图状结构合称非线性结构。 2.数据的逻辑结构分为集合、线性结构、树形结构和图状结构 4种。 3.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有 1 个后续结点。 4.线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。 5.在树形结构中,树根结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点可以任意多个。 6.数据结构的基本存储方法是顺序、链式、索引和散列存储。 7.衡量一个算法的优劣主要考虑正确性、可读性、健壮性和时间复杂度与空间复杂度。 8.评估一个算法的优劣,通常从时间复杂度和空间复杂度两个方面考察。 9.算法的5个重要特性是有穷性、确定性、可行性、输入和输出。 10.在一个长度为n的顺序表中删除第i个元素时,需向前移动 n-i 个元素。 11.在单链表中,要删除某一指定的结点,必须找到该结点的前驱结点。 12.在双链表中,每个结点有两个指针域,一个指向前驱结点,另一个指向后继结点。 13.在顺序表中插入或删除一个数据元素,需要平均移动 n 个数据元素,移动数据元素的个数与位置有关。 14.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表的元素是,应采用顺序存储结构。 15.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成单链表和双链表。 16.顺序存储结构是通过下标表示元素之间的关系的;链式存储结构是通过指针表示元素之间的关系的。 17.带头结点的循环链表L中只有一个元素结点的条件是 L->next->next=L 。

数据结构试题及答案(10套最新)

单选题(每题2分,共20分) 1. 1. 对一个算法的评价,不包括如下(B )方面的内容。 A .健壮性和可读性 B .并行性 C .正确性 D .时空复杂度 2.2. 在带有头结点的单链表HL 中,要向表头插入一个由指针 p 指向 的结点,则执行(A )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; 都具有相同的(A )。 A.行号 B .列号 C .元素值 D .非零元素个数 9. 快速排序在最坏情况下的时间复杂度为(D )。 A. O(log 2n) B . O(nlog 2n) C . 0(n) D 10.10. 从二叉搜索树中查找一个元素时,其时间复杂度大致 为 A. O(n) B. O(1) C. O(log 2 n) D. O(n 二、 运算题(每题6分,共24分) 1. 1. 数据结构是指数据及其相互之间的 _________________ 。当结点之 间存在M 对N (M N)的联系时,称这种结构为 __________________________ 。 2. 2. 队列的插入操作是在队列的_ _尾 ________ 行,删除操作是在队 列的 ____ 首 _____ 行。 3. 3. 当用长度为N 的数组顺序存储一个栈时,假定用top==N 表示栈 C. p->next=HL; p=HL; 3. 3. A. C. D. HL=p; p-> next=HL; 对线性表,在下列哪种情况下应当采用链表表示? 经常需要随机地存取元素 B. 表中元素需要占据一片连续的存储空间 一个栈的输入序列为1 2 3, 4. 4. 列的是(C ) A. 2 3 1 C. 3 1 2 AOV 网 是一种(D ) 有向 图 B .无向图 (B ) 经常需要进行插入和删除操作 D.表中元素的个数不变 则下列序列中不可能是栈的输出序 B. 3 2 1 5. 5. 6. .无向无环图 D .有向无环图 采用 开放定址法处理散列表的冲突时,其平均查找长度( B. 高于链接法处理冲突 D .高于二分查找 7. 8. 6. A.低于链接法处理冲突 .与链接法处理冲突相同 7. 参数。 A.值 8. B)。 若需要利用形参直接访问实参时,应将形参变量说明为( B .函数 C .指针 D .引用 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点 9. .0(n 2) (C )。 2 )

《数据结构》模拟试卷一及答案

模拟试卷一 一、单选题(每题 2 分,共20分) 1.以下数据结构中哪一个是线性结构?( ) A. 有向图 B. 队列 C. 线索二叉树 D. B树 2.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点, 则执行如下( )语句序列。 A. p=q; p->next=q; B. p->next=q; q->next=p; C. p->next=q->next; p=q; D. q->next=p->next; p->next=q; 3.以下哪一个不是队列的基本运算?() A. 在队列第i个元素之后插入一个元素 B. 从队头删除一个元素 C. 判断一个队列是否为空 D.读取队头元素的值 4.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成 ( )个不同的字符串? A.14 B.5 C.6 D.8 5.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。 A. 11 B.35 C. 19 D. 53 图一 6.该二叉树结点的前序遍历的序列为( )。 A.E、G、F、A、C、D、B B. E、A、G、C、F、B、D C. E、A、C、B、D、G、F D. E、G、A、C、D、F、B 7.该二叉树结点的中序遍历的序列为( )。 A. A、B、C、D、E、G、F B. E、A、G、C、F、B、D C. E、A、C、B、D、G、F D. B、D、C、A、F、G、E 8.该二叉树的按层遍历的序列为( )。 A.E、G、F、A、C、D、B B. E、A、C、B、D、G、F C. E、A、G、C、F、B、D D. E、G、A、C、D、F、B 9.下面关于图的存储的叙述中正确的是( )。 A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关 C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关 D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关10.设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建 堆的结果?( )

数据结构选择题

1.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( 1)。 选择一项: 1. 108 2. 110 3. 100 4. 120 2.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是(b) 选择一项: a. 删除第i个结点(1≤i≤n) b. 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) c. 将n个结点从小到大排序 d. 在第i个结点后插入一个新结点(1≤i≤n) 3.以下说法错误的是( d)。 选择一项: a. 由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活 b. 顺序存储的线性表可以随机存取 c. 求表长、定位这两种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效率低 d. 线性表的链式存储结构优于顺序存储结构 4.单链表的存储密度( b)。 选择一项: a. 不能确定 b. 小于1 c. 大于1 d. 等于1 5.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动的元素个数为( c)。 选择一项: a. 63 b. 7 c. 63.5 d. 8 6.在一个长度为n的顺序表中,在第i个元素(1≤i≤n+1)之前插入一个新元素时须向后移动( b)个元素。 选择一项: a. n-i b. n-i+1 c. i d. n-i-1 7.在单链表中,要将s所指结点插入到p所指结点之后,其语句应为(a )。 选择一项: a. s->next=p->next; p->next=s; b. (*p).next=s; (*s).next=(*p).next; c. s->next=p->next; p->next=s->next; d. s->next=p+1; p->next=s; 8.在双向循环链表中,在p指针所指的结点后插入q所指向的新结点,其修改指针的操作是(b )。 选择一项: a. p->next=q; q->prior=p; p->next->prior=q; q->next=q; b. q->prior=p; q->next=p->next; p->next->prior=q; p->next=q; c. p->next=q; p->next->prior=q; q->prior=p; q->next=p->next; d. q->prior=p; q->next=p->next; p->next=q; p->next->prior=q; 9.在双向链表存储结构中,删除p所指的结点时须修改指针(c )。 选择一项: a. p->prior=p->next->next; p->next=p->prior->prior; b. p->next=p->next->next; p->next->prior=p; c. p->next->prior=p->prior; p->prior->next=p->next; d. p->prior->next=p; p->prior=p->prior->prior; 10.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是(c )。 选择一项: a. 2n b. n-1 c. n d. 2n-1 11.线性表L=(a1,a2,……an),下列说法正确的是( b)。 选择一项: a. 表中诸元素的排列必须是由小到大或由大到小 b. 除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。 c. 每个元素都有一个直接前驱和一个直接后继 d. 线性表中至少有一个元素 12.线性表若采用链式存储结构时,要求内存中可用存储单元的地址(d )。 选择一项: a. 部分地址必须是连续的 b. 一定是不连续的 c. 必须是连续的 d. 连续或不连续都可以 13.线性表L在(d )情况下适用于使用链式结构实现。 选择一项: a. L中结点结构复杂 b. L中含有大量的结点 c. 需经常修改L中的结点值

算法与数据结构题库与答案

一、单项选择题 1 某算法的时间复杂度是O(n 2 ) ,表明该算法()。 A 问题规模是n2 B 问题规模与n2成正比 C 执行时间等于n2 D 执行时间与n2成正比 2、关于数据结构的描述,不正确的是()。 A数据结构相同,对应的存储结构也相同。 B数据结构涉及数据的逻辑结构、存储结构和施加其上的操作等三个方面。 C数据结构操作的实现与存储结构有关。 D定义逻辑结构时可不考虑存储结构。 3、按排序策略分来,起泡排序属于()。 A插入排序B选择排序C交换排序D归并排序 4、利用双向链表作线性表的存储结构的优点是()。 A便于进行插入和删除的操作 B 提高按关系查找数据元素的速度 C节省空间D便于销毁结构释放空间 5、一个队列的进队顺序为1,2,3,4,则该队列可能的输出序列是()。 A 1,2,3,4 B 1,3,2,4 C 1,4,2,3 D 4,3,2,1 6、 Dijkstra算法是按()方法求出图中从某顶点到其余顶点最短路径的。 A按长度递减的顺序求出图的某顶点到其余顶点的最短路径 B按长度递增的顺序求出图的某顶点到其余顶点的最短路径 C通过深度优先遍历求出图中从某顶点到其余顶点的所有路径 D通过广度优先遍历求出图的某顶点到其余顶点的最短路径 7、字符串可定义为n( n≥ 0)个字符的有限()。其中,n是字符串的长度,表明字符串中字符的个数。 A集合B数列C序列D聚合 8、在二维数组A[9][10]中,每个数组元素占用 3 个存储单元,从首地址SA 开始按行连续存放。在这种情况下,元素A[8][5]的起始地址为()。 A SA+141 B SA+144 C SA+222 D SA+255 9、已知广义表为L(A(u,v,(x,y),z),C(m,(),(k,l,n),(())),((())),(e,(f,g),h)),则它的长度是()。 A2B3C4D5 10.对于具有n(n>1)个顶点的强连通图,其有向边条数至少有_____。 A. n+1 B. n C. n-1 D. n-2 11.一个递归算法必须包括 __________ 。 A. 递归部分 B . 结束条件和递归部分 C. 迭代部分 D. 结束条件和迭代部分 12.从逻辑上看可以把数据结构分为__________两大类。 A.动态结构、静态结构B.顺序结构、链式结构 C.线性结构、非线性结构D.初等结构、构造型结构 13、若在长度为n 的顺序表的表尾插入一个新元素的渐进时间复杂度为()。 A O(n) B O(1) C O(n 2) D O(log 2n) 14.采用顺序搜素方式搜索长度为 n 的线性表时,在等概率情况下,搜索成功时的平均搜索 长度为 __________。 A. n B. n/2 C . (n+1)/2 D. (n-1)/2 15、非空的循环单链表first的链尾结点(由p 所指向)满足()。 A p->link==NULL; B P==NULL;

数据结构模拟试卷(含答案)

数据结构设计课程代码:7399 一、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。每小题2分,共40分) 1、串的长度是()。 A、串中不同字母的个数 B、串中不同字符的个数 C、串中所含字符的个数,且大于0 D、串中所含字符的个数 2、若用数组S[1..n]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。为这两个栈分配空间的最佳方案是()。 A、S1的栈底位置为0,S2的栈底位置为n+1 B、S1的栈底位置为0,S2的栈底位置为n/2 C、S1的栈底位置为1,S2的栈底位置为n D、S1的栈底位置为1,S2的栈底位置为n/2 3、队列操作的原则是()。 A、先进先出 B、后进先出 C、只能进行插入 D、只能进行删除 4、有64个结点的完全二叉树的深度为()(根的层次为1)。 A、8 B、7 C、6 D、5 5、在有n个结点的二叉链表中,值为非空的链域的个数为()。

A、n-1 B、2n-1 C、n+1 D、2n+1 6、带权有向图G用邻接矩阵A存储,则顶点i的人度等于A中()。 A、第i行非∞的元素之和 B、第i列非∞的元素之和 C、第i行非∞且非0的元素个数 D、第i列非∞且非0的元素个数 7、在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为()。 A、0(n) B、0(log2n) C、0(nolg2n) D、0(n2) 8、若表R在排序前已按键值递增顺序排列,则()算法的比较次数最少。 A、直接插入排序 B、快速排序 C、归并排序 D、选择排序 9、下列排序算法中,()排序在某趟结束后不一定选出一个元素放到其最终的位置上。 A、选择 B、冒泡 C、归并 D、堆

数据结构考试题(二)

数据结构试卷(一) 一、选择题(30分) 1.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为()。 (A) O(n) (B) O(nlog2n) (C) O(1) (D) O(n2) 2.设一棵二叉树的深度为k,则该二叉树中最多有()个结点。 (A) 2k-1 (B) 2k(C) 2k-1(D) 2k-1 3.设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为()。 (A) n (B) e (C) 2n (D) 2e 4.在二叉排序树中插入一个结点的时间复杂度为()。 (A) O(1) (B) O(n) (C) O(log2n) (D) O(n2) 5.设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有()条有向边。 (A) n (B) n-1 (C) m (D) m-1 6.设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行()趟的分配和回收才能使得初始关键字序列变成有序序列。 (A) 3 (B) 4 (C) 5 (D) 8 7.设用链表作为栈的存储结构则退栈操作()。 (A) 必须判别栈是否为满(B) 必须判别栈是否为空 (C) 判别栈元素的类型(D) 对栈不作任何判别 8.下列四种排序中()的空间复杂度最大。 (A) 快速排序(B) 冒泡排序(C) 希尔排序(D) 堆 9.设某二叉树中度数为0的结点数为N0,度数为1的结点数为N l,度数为2的结点数为N2,则下列等式成立的是()。 (A) N0=N1+1 (B) N0=N l+N2(C) N0=N2+1 (D) N0=2N1+l 10.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不 超过()。 (A) log2n+1 (B) log2n-1 (C) log2n (D) log2(n+1) 二、填空题(42分) 1.1.设有n个无序的记录关键字,则直接插入排序的时间复杂度为________,快速排序的平均时间复杂度为_________。 2.2.设指针变量p指向双向循环链表中的结点X,则删除结点X需要执行的语句序列为_________________________________________________________(设结点中的两个指针域分别为llink和rlink)。 3.3.根据初始关键字序列(19,22,01,38,10)建立的二叉排序树的高度为____________。4.4.深度为k的完全二叉树中最少有____________个结点。 5.5.设初始记录关键字序列为(K1,K2,…,K n),则用筛选法思想建堆必须从第______个元素开始进行筛选。 6.6.设哈夫曼树中共有99个结点,则该树中有_________个叶子结点;若采用二叉链表作为存储结构,则该树中有_____个空指针域。 7.7.设有一个顺序循环队列中有M个存储单元,则该循环队列中最多能够存储________个队列元素;当前实际存储________________个队列元素(设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置)。 8.8.设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中_______个数据元素;删除第i个位置上的数据元素需要移动表中_______个元素。9.9.设一组初始记录关键字序列为(20,18,22,16,30,19),则以20为中轴的一趟快速排序结果为______________________________。 10.10.设一组初始记录关键字序列为(20,18,22,16,30,19),则根据这些初始关键字序列建成的初始堆为________________________。 11.11.设某无向图G中有n个顶点,用邻接矩阵A作为该图的存储结构,则顶点i和顶点j互为邻接点的条件是______________________。

数据结构模拟题(开卷)

《数据结构》模拟题(开卷) 一、单项选择题 1.分析下列算法suanfa1(n): void suanfa1(int n) { int i,j,x=1; for(i=0;i

相关文档
最新文档