当前位置:文档之家› 数据结构练习题及答案

数据结构练习题及答案

数据结构练习题及答案

第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(n2)。

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)(n) ( log2n) (n2)

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

for(i=0;i

for(j=o;i

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

A.O(1)(n) C.( log2n) (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;来实现该操作。

p

s

三、选择题

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

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

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

C.删除开始结点

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

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

p a 10 b 20 c ∧

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

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

A.大于1

B.等于1

C.小于1

D.不能确定

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

的地址为( A )。

+(i-1)×m +i×m ×m +(i+1)×m

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

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

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

尾元素的条件是( D )。

= =L >front= =L = =NULL >rear= =L

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

A.P->next= =Q->next >next= =Q >next= =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.单向链表的示意图如下:

P Q R

指向链表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 2 D.(n+1)/2

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

A.双向链表

B.单循环链表

C.单向链表

D.双向循环链表

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

A.基地址

B.结点大小

C.向量大小

D.基地址和结点大小

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

A.O(1)(n) C. O(n2) ( 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; =top->next;x=top->data

=top->data; =top->data;top=top->next

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

>next=S >next=HS->next;HS->next=S;

>next=HS->next;HS=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.经过下列栈的运算后,再执行ReadT op(s)的值是( A )。

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

A. a

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

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

A. a

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

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

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

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

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.任意的

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

A.必须一致

B.不能一致

C.可以不一致

D.不限制

4.队列是一个(C)线性表结构。

A.不加限制的

B.推广了的

C.加了限制的

D.非

5.当利用大小为n的数组顺序存储一个队列时,该队列的最后一个元素的下标为(B)。

+1

6.一个循环队列一旦说明,其占用空间的大小(A)。

A.已固定

B.可以变动

C.不能固定

D.动态变化

7.循环队列占用的空间(A)。

A.必须连续

B.不必连续

C.不能连续

D.可以不连续

8.存放循环队列元素的数组data有10个元素,则data数组的下标范围是(B)。

~10 ~9 ~9 ~10

9.若进队的序列为A、B、C、D,则出队的序列是(C)。

、C、D、A 、C、B、D 、B、C、D 、B、D、A

10.4个元素按A、B、C、D顺序连续进队Q,则队尾元素是(D)

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

11.4个元素按A、B、C、D顺序连续进队Q,执行一次QutQueue(Q)操作后,队头元素是(B)。

12.4个元素按A、B、C、D顺序连续进队Q,执行4次QutQueue(Q)操作后,再执行QEmpty(Q);后的值

是(B)。

13.队列Q,经过下列运算后,x的值是(B)。InitQueue(Q)(初始化队列);InQueue(Q,a);InQueue(Q,b);

OutQueue(Q,x);ReadFront(Q,x);

14.循环队列SQ队满的条件是(B)。

>rear= =SQ->front B.(SQ->rear+1)%MAXLEN= =SQ->front >rear= =0 >front= =0

15.设链栈中结点的结构:data为数据域,next为指针域,且top 是栈顶指针,若想在链栈的栈顶插入

一个由指针s所指的结点,则应执行下列(A)操作。

>next=top->next;top->next=s; >next=s;

>next=top;top->next; >next=top;top=s;

16.带头结点的链队LQ示意图如下,链队列的队头元素是(A)。

LQ->front

LQ->rear

A.A B.B C.C D.D 17.带头结点的链队列LQ示意图如下,指向链队列的队头指针是(C)。

LQ->rear

>front >rear >front->next >rear->next

18.带头结点的链队列LQ示意图如下,在进行进队的运算时指针LQ->frnot(A).

LQ->rear

A.始终不改变

B.有时改变

C.进队时改变

D.出队时改变

19.队列Q,经过下列运算后,再执行QEmpty(Q)的值是(C)。

InitQueue(Q)(初始化队列);InQueue(Q,a);InQueue(Q,b);OutQueue(Q,x);ReadQueue(Q,x);

20.若用一个大小为6数组来实现循环队列,且当前front和rear 的值分别为3和0,当从队列中删除一

个元素,再加入两个元素后,front和rear的值分别为(B)。

和1 和2 和4 和5

第5章串

一、判断题

1.串是n个字母的有限序列。(×)

2.串的数据元素是一个字符。(√)

3.串的长度是指串中不同字符的个数。(×)

4.如果两个串含有相同的字符,则说明它们相等。(×)

5.如果一个串中所有的字母均在另一个串中出现,则说明前者是后者的子串。(×)

6.串的堆分配存储是一种动态存储结构。(√)

7.“DT”是“DATA”的子串。(×)

8.串中任意个字符组成的子序列称为该串的子串。(×)

9.子串的定位运算称为模式匹配。(√)

10.在链串中为了提高存储密度,应该增大结点的大小。(√)

二、填空题

1.由零个或多个字符组成的有限序列称为字符串(或串)。

2.字符串按存储方式可以分为顺序存储、链接存储和堆分配存储。

3.串的顺序存储结构简称为顺序串。

4.串顺序存储非紧凑格式的缺点是空间利用率低。

5.串顺序存储紧凑格式的缺点是对串的字符处理效率低。

6.串链接存储的优点是插入、删除方便,缺点是空间利用率。

7.在C或C++语言中,以字符 \0 表示串值的终结。

8.空格串的长度等于空格的个数。

9.在空串和空格串中,长度不为0的是空格串。

10.两个串相等是指两个串长度相等,且对应位置的字符都相同。

11.设“S=My Music”,则LenStr(s)= 8 。

12.两个字符串分别为;S1=”T oday is”、S2=”30 July,2005”,ConcatStr(S1,S2)的结果是 T oday is

30 July,2005 。

13.求子串函数SubStr(“T oday is 30 July,2005”,13,4)的结果是 July 。

14.在串的运算中,EqualStr(aaa,aab)的返回值 <0 。

15.在串的运算中,EqualStr(aaa,aaa)的返回值 0 。

16.在子串的定位运算中,被匹配的主串称为目标串,子串称为模式。

17.模式匹配成功的起始位置称为有效位移。

18.设S=”abccdcdccbaa”,T=”cdcc”,则第6 次匹配成功。

19.设S=”c:/mydocument/”,T=”mydont”,则字符定位的位置为 0 。

20.若n为主串长度,m为子串长度,n>>m,则模式匹配算法最坏情况下的时间复杂度为 (n-m+1)*m 。

三、选择题

1.串是和种特殊的线性表,其特殊体现在(B)。

A.可能顺序存储B.数据元素是一个字符C.可以链接存储D.数据元素可以是多个字符2.某串的长度小于一常数,则采用(B)存储方式最节省空间。

A.链式 B.顺序 C.堆结构 D.无法确定

3.以下论述正确的是(C)。

A.空串与空格串是相同的B.”tel”是”Teleptone”的子串

C.空串是零个字符的串 D.空串的长度等于1

4.以下论述正确的是(B)。

A.空串与空格串是相同的B.”ton”是”Teleptone”的子串

C.空格串是有空格的串 D.空串的长度等于1

5.以下论断正确的是(A)。

A.全部由空格组成的串是空格串B.”BEUIJING”是”BEI JING”的子串

C.”something”<”Something” D.”BIT”=”BITE”

6.设有两个串S1和S2,则EqualStr(S1,S2)运算称作(D)。

A.串连接 B.模式匹配 C.求子串 D.串比较

7.串的模式匹配是指(D)。

A.判断两个串是否相等 B.对两个串比较大小

C.找某字符在主串中第一次出现的位置D.找某子串在主串中第一次出现的第一个字符位置

8.若字符串”ABCDEFG”采用链式存储,假设每个字符占用1个字节,每个指针占用2个字节。则该字

符串的存储密度为(D)。

A.20% B.40% C.50% D.%

9.若字符串”ABCDEFG”采用链式存储,假设每个指针占用2个字节,若希望存储密度为50%,则每个结

点应存储(A)个字符。

10.设串S1=”IAM”,S2=”A SDUDENT”,则ConcatStr(S1,S2)=(B)。

A.”I AM” B.”I AM A SDUDENT” C.”IAMASDUDENT”

D.”A SDUDENT”11.设S=””,则LenStr(S)=(A)。

12.设目标串T=”AABBCCDDE”,模式P=”ABCDE”,则该模式匹配的有效位移为(A)。

13.设目标串T=”AABBCCDDEEFF”,模式P=”CCD”,则该模式匹配的有效位移为(D)。

14.设目标串T=”aabaababaabaa”,模式P=”abab”,模式匹配算法的外层循环进行了(D)次。

15.模式匹配算法在最坏情况下的时间复杂是(D)。

(m) (n) (m+n) (m×n)

16.S=”morning”,执行求子串函数SubSur(S,2,2)后结果为(B)。

A. ”mo”

B. ”or”

C. ”in”

D. ”ng”

17.S1=”good”,S2”morning”,执行串连接函数ConcatStr(S1,S2)后结果为(A)。

A. ”goodmorning”

B. ”good morning”

C. ”GOODMORNING”

D. ”GOODMORNING”

18.S1=”good”, S2=”morning”执行函数SubSur(S2,4,LenStr(S1))后的结果为(B)。

A.”good”

B.”ning”

C.”go”

数据结构练习附答案

一、单项选择题 1.逻辑关系是指数据元素间的() A.类型 B.存储方式 C.结构 D.数据项 2.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构 为( ) A.顺序表 B.用头指针表示的单循环链表 C. 用尾指针表示的单循环链表 D. 单链表 3.设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear 为队尾指针,则执行出队操作后其头指针front值为() A.front=front+1 B.front= (front+1)%(m-1) C.front=(front-1)%m D.front=(fro nt+1)%m 4.在具有n个单元的顺序存储的循环队列中,假定front和rear分别 为队头指针和队尾指针,则判断队满的条件为( )。 A.rear%n==front B.(front+l)%n==rear C.rear%n-1==front D.(rear+l)%n==front 5.在具有n个单元的顺序存储的循环队列中,假定front和rear分别 为队头指针和队尾指针,则判断队空的条件为( )。 A.rear%n==front B.front+l=rear C.rear==front D.(rear+l)%n=front 6.已知一颗二叉树上有92个叶子结点,则它有____个度为2的结点。 ( ) A. 90 B. 91 C. 92 D. 93 7.在一棵非空二叉树的中序遍历序列中,根结点的右边_____。 A. 只有右子树上的所有结点 B. 只有右子树上的部分结点 C. 只有左子树上的所有结点 D. 只有左子树上的部分结点 8.有n条边的无向图的邻接表存储法中,链表中结点的个数是( )个。 A. n B. 2n C. n/2 D. n*n 9.判断有向图是否存在回路,除了可利用拓扑排序方法外,还可以利 用()。 A. 求关键路径的方法 B.求最短路径的方法 C. 深度优先遍历算法 D.广度优先遍历算法 10.对线性表进行二分查找时,要求线性表必须( )。

数据结构练习题及答案

数据结构练习题(一) 一、单选题 1.栈和队列的共同特点是( )。 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 2.用链接方式存储的队列,在进行插入运算时( )。 A. 仅修改头指针 B. 头、尾指针都要修改 C. 仅修改尾指针 D.头、尾指针可能都要修改 3.以下数据结构中( )是非线性结构。 A. 队列 B. 栈 C. 线性表 D. 二叉树 4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10), 每个元素占一个空间,问A[3][3](10)存放在()位置。脚注(10)表示用10进制表示。 A.688 B.678 C.692 D.696 5.树最适合用来表示( )。 A.有序数据元素 B.无序数据元素 C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据 6.二叉树的第k层的结点数最多为( )。 A.2k-1 +1 D. 2k-1 7.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二 分查找,则查找A[3]的比较序列的下标依次为( )。 A. 1,2,3 B. 9,5,2,3 C. 9,5,3 D. 9,4,2,3 8.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K) =K %9作为散列函数,则散列地址为1的元素有()个。 A.1 B.2 C.3 D.4 9.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

二、填空题 1.通常从四个方面评价算法的质量:_________、_________、_________和_________。 2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。 3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为 __________个,树的深度为___________,树的度为_________。 4.若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指 针。在这种存储结构中,n个结点的二叉树共有________个指针域,其中有________个指针域是存放了地址,有________________个指针是空指针。 5.对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点 分别有_______个和________个。 6.AOV网是一种___________________的图。 7.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有 向完全图中,包含有________条边。 8.假定一个线性表为(12,23,74,55,63,40),若按Key % 4条件进行划分,使得同一余数的元 素成为一个子表,则得到的四个子表分别为____________________________、___________________、_______________________和__________________________。 9.在快速排序、堆排序、归并排序中,_________排序是稳定的。 三、计算题 1.在如下数组A中链接存储了一个线性表,表头指针为A [0].next,试写出该线性表。 A 0 1 2 3 4 5 6 7 data 605078903440 next3572041 2.

数据结构练习题及答案

数据结构练习题及答案 第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(n2)。 20.数据结构是一门研究非数值计算的程序问题中计算机的操作对象,以及它们之间的关系和运算的学 科。 三、选择题 1.数据结构通常是研究数据的(A)及它们之间的相互关系。 A.存储结构和逻辑结构 B.存储和抽象 C.联系和抽象 D.联系与逻辑 2.在逻辑上可以把数据结构分成(C)。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构。 3.数据在计算机存储内表示时,物理地址和逻辑地址相同并且是连续的,称之为(C)。 A.存储结构 B.逻辑结构 C.顺序存储结构 D.链式存储结构

数据结构(树和二叉树)练习题与答案1

1、树最适合用来表示()。 A.元素之间无联系的数据 B.元素之间具有层次关系的数据 C.无序数据元素 D.有序数据元素 正确答案:B 2、现有一“遗传”关系,设x是y的父亲,则x可以把他的属性遗传给y。表示该遗传关系最适合的数据结构为()。 A.线性表 B.树 C.数组 D.图 正确答案:B 3、一棵节点个数为n、高度为h的m(m≥3)次树中,其分支数是()。 A.n+h B.h-1 C.n-1 D.nh 正确答案:C 4、若一棵3次树中有2个度为3的节点,1个度为2的节点,2个度为1的节点,该树一共有()个节点。 A.11 B.5 C.8

D.10 正确答案:A 解析: A、对于该3次树,其中有n3=2,n2=1,n1=2,总分支数= 总度数=n-1,总度数=1×n1+2×n2+3×n3=10,则n=总度数+1=11。5、设树T的度为4,其中度为1、2、3、4的节点个数分别为4、2、 1、1,则T中的叶子节点个数是()。 A.6 B.8 C.7 D.5 正确答案:B 解析: B、这里n1=4,n2=2,n3=1,n4=1,度之和=n- 1=n1+2n2+3n3+4n4=15,所以n=16,则n0=n-n1-n2-n3-n4=16-8=8。6、有一棵三次树,其中n3=2,n2=1,n0=6,则该树的节点个数为()。 A.9 B.12 C.大于等于9的任意整数 D.10 正确答案:C 解析: C、n=n0+n1+n2+n3=6+n1+1+2=9+n1。 7、假设每个节点值为单个字符,而一棵树的后根遍历序列为ABCDEFGHIJ,则其根节点值是()。 A.J B.B

数据结构(绪论)练习题与答案

1、计算机所处理的数据一般具备某种内在联系,这是指()。 A.数据和数据之间存在某种关系 B.元素和元素之间存在某种关系 C.元素内部具有某种结构 D.数据项和数据项之间存在某种关系 正确答案:B 解析:在数据结构中讨论的关系指的是元素和元素之间的关系。 2、在数据结构中,与所使用的计算机无关的是数据的()结构。 A.逻辑 B.存储 C.逻辑和存储 D.物理 正确答案:A 解析:逻辑结构与存储结构无关,也就是与使用的计算机无关。3、在计算机中存储数据时,通常不仅要存储各数据元素的值,而且还要存储()。 A.数据的处理方法 B.数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 正确答案:C 解析:将数据逻辑结构映射成存储数据时,需要存储所有数据元素的值和数据元素之间关系。 4、数据结构在计算机内存中的表示是指()。 A.数据的存储结构

B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系 正确答案:A 解析:数据的存储结构是逻辑结构在计算机内存中的表示,它既 保存数据元素,也保存数据元素之间的关系。 5、数据在计算机的存储器中表示时,逻辑上相邻的两个元素对应的 物理地址也是相邻的,这种存储结构称之为()。 A.逻辑结构 B.顺序存储结构 C.链式存储结构 D.以上都对 正确答案:B 解析:顺序存储结构是逻辑结构的一种直接映射,通过数据元素之 间的物理关系来表示逻辑关系。 6、数据采用链式存储结构时,要求()。 A.每个节点占用一片连续的存储区域 B.所有节点占用一片连续的存储区域 C.节点的最后一个域必须是指针域 D.每个节点有多少后继节点,就必须设多少个指针域 正确答案:A 解析:在链式存储结构中,通常一个结点是整体分配存储空间的,所以每个结点占用一片连续的存储区域,所有结点的存储地址既可 以连续也可以不连续,所以所有结点不一定占用一片连续的存储区域。

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

数据结构试题及答案(10套最新)数据结构试题及答案(10套最新) 第一套试题: 问题一:什么是数据结构?数据结构的作用是什么? 回答:数据结构是一种组织和存储数据的方式,它关注数据元素之 间的关系以及对数据元素的操作。数据结构的作用包括提供高效的数 据存储和访问方式,减少资源消耗,简化问题的解决方法,提高算法 的性能和程序的可读性。 问题二:请列举几种常见的线性数据结构,并简要介绍它们的特点。 回答:常见的线性数据结构包括数组、链表和栈。数组是一种连续 存储数据元素的结构,具有随机访问的特点;链表是一种通过指针相 连的数据元素,可以灵活地插入和删除元素;栈是一种遵循先进后出 原则的数据结构,常用于解决递归问题。 问题三:请说明二叉树的定义及其性质。 回答:二叉树是一种特殊的树形数据结构,每个节点最多有两个子 节点。二叉树具有以下性质:每个节点最多有两个子节点,分别称为 左子节点和右子节点;左子树和右子树都是二叉树;二叉树的节点个 数为n,边的个数为n-1。 问题四:在数组中查找一个元素的时间复杂度是多少?为什么?

回答:在数组中查找一个元素的时间复杂度是O(n),其中n是数组 的长度。因为在数组中查找元素需要按照索引一个一个比较,最坏情 况下需要比较n次才能找到目标元素。 问题五:请解释堆排序算法的原理及时间复杂度。 回答:堆排序算法利用堆这种数据结构进行排序。首先将待排序的 元素构建成一个大顶堆,然后将堆顶元素与最后一个元素交换,继续 调整堆,再取出堆顶元素与倒数第二个元素交换,依次执行,最后得 到从小到大排序的序列。堆排序的时间复杂度为O(nlogn)。 第二套试题: 问题一:请解释图的邻接矩阵和邻接表表示法。 回答:图的邻接矩阵表示法是使用二维数组来表示图的连接关系, 数组中的元素表示相应节点之间的边的关系。邻接表表示法使用链表 来表示图的连接关系,链表中的元素表示相邻节点之间的边的关系。 问题二:请说明深度优先搜索算法的原理及其应用。 回答:深度优先搜索(DFS)算法是一种遍历或搜索图的算法,其 原理是从起始节点开始,依次深入到尽可能远的节点,直到无法继续 深入为止,然后回溯到上一个节点,再继续深入其他未访问过的节点。DFS算法常用于解决连通性、路径查找、拓扑排序等问题。 问题三:请说明广度优先搜索算法的原理及其应用。

数据结构试题及答案

一、判断题: 1、线性表的逻辑顺序与物理顺序总是一致的。( ) 2、线性表的顺序存储表示优于链式存储表示。( ) 3、线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。( ) 4、二维数组是其数组元素为线性表的线性表。( ) 5、每种数据结构都应具备三种基本运算:插入、删除和搜索。( ) 6、数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个 方面。( ) 7、线性表中的每个结点最多只有一个前驱和一个后继。() 8、线性的数据结构可以顺序存储,也可以链接存储。非线性的数据结构只能链接存储。() 9、栈和队列逻辑上都是线性表。() 10、单链表从任何一个结点出发,都能访问到所有结点() 11、删除二叉排序树中一个结点,再重新插入上去,一定能得到原来的二叉排序树。() 12、快速排序是排序算法中最快的一种。() 13、多维数组是向量的推广。() 14、一般树和二叉树的结点数目都可以为0。() 15、直接选择排序是一种不稳定的排序方法。() 16、98、对一个堆按层次遍历,不一定能得到一个有序序列。() 17、在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。() 18、折半搜索只适用与有序表,包括有序的顺序表和有序的链表。() 19、堆栈在数据中的存储原则是先进先出。() 20、队列在数据中的存储原则是后进先出。() 21、用相邻矩阵表示图所用的存储空间大小与图的边数成正比。() 22、哈夫曼树一定是满二叉树。() 23、程序是用计算机语言表述的算法。() 24、线性表的顺序存储结构是通过数据元素的存储地址直接反映数据元素的逻辑关系。() 25、用一组地址连续的存储单元存放的元素一定构成线性表。() 26、堆栈、队列和数组的逻辑结构都是线性表结构。() 27、给定一组权值,可以唯一构造出一棵哈夫曼树。() 28、只有在初始数据为逆序时,冒泡排序所执行的比较次数最多。() 29、希尔排序在较率上较直接接入排序有较大的改进。但是不稳定的。() 30、在平均情况下,快速排序法最快,堆积排序法最节省空间。() 31、快速排序法是一种稳定性排序法。()

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

数据结构练习题(含答案)数据结构练习题(含答案) 一、单项选择题 1. 在数组中插入和删除元素最慢的时间复杂度是: A. O(1) B. O(log n) C. O(n) D. O(n^2) 答案:C 2. 在链表中插入和删除元素最慢的时间复杂度是: A. O(1) B. O(log n) C. O(n) D. O(n^2) 答案:A 3. 下列哪种数据结构采用了“先进先出”的存储方式: A. 栈 B. 队列

D. 二叉树 答案:B 4. 下列哪种数据结构采用了“先进后出”的存储方式: A. 栈 B. 队列 C. 哈希表 D. 二叉树 答案:A 5. 以下哪种排序算法的时间复杂度最好: A. 冒泡排序 B. 插入排序 C. 快速排序 D. 选择排序 答案:C 二、填空题 1. 假设有一个长度为10的数组arr,要访问第7个元素,应该使用arr[]表示。

2. 栈的特点是后进先出,所以从栈中取出第一个元素需要调用的操作是。 答案:pop 3. 结点的度可以理解为: 答案:与该结点相连的边的数目 4. 图中的结点称为: 答案:顶点 5. 在二叉树中,度为 2 的结点称为。 答案:内部结点 三、编程题 1. 使用Python编写代码,实现冒泡排序算法,并对以下数组进行排序:[5, 2, 9, 1, 3, 6, 8, 7, 4] 答案: ```python def bubble_sort(arr): n = len(arr) for i in range(n):

for j in range(0, n-i-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] arr = [5, 2, 9, 1, 3, 6, 8, 7, 4] bubble_sort(arr) print(arr) ``` 2. 使用Java编写代码,实现队列的基本操作:入队(enqueue)、出队(dequeue)、查看队首元素(peek)。 答案: ```java import java.util.LinkedList; import java.util.Queue; public class QueueExample { public static void main(String[] args) { Queue queue = new LinkedList<>(); // 入队 queue.offer(1); queue.offer(2);

(完整版)数据结构试题及答案

数据结构试卷(一)王彬 一、单选题(每题2 分,共20分) 1.栈和队列的共同特点是( )。 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 2.用链接方式存储的队列,在进行插入运算时( ). A. 仅修改头指针 B. 头、尾指针都要修改 C. 仅修改尾指针 D.头、尾指针可能都要修改 3.以下数据结构中哪一个是非线性结构?( ) A. 队列 B. 栈 C. 线性表 D. 二叉树 4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在 676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。c A.688 B.678 C.692 D.696 5.树最适合用来表示( )。 A.有序数据元素 B.无序数据元素 C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据 6.二叉树的第k层的结点数最多为( d ). A.2k-1 B.2K+1 C.2K-1 D. 2k-1 7.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二 分查找,则查找A[3]的比较序列的下标依次为( ) A. 1,2,3 B. 9,5,2,3 C. 9,5,3 D. 9,4,2,3 8.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为 A. O(1) B. O(n) C. O(1og2n) D. O(n2) 9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K) =K %9作为散列函数,则散列地址为1的元素有( c d)个, A.1 B.2 C.3 D.4 10.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。 A.5 B.6 C.7 D.8 二、填空题(每空1分,共26分) 1.通常从四个方面评价算法的质量:____ ____、________、________和_______。 2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。 3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数 为__________个,树的深度为_________,树的度为________。 4.后缀算式9 2 3 +- 10 2 / -的值为________。中缀算式(3+4X)-2Y/3对应的后缀算 式为______3 4X* + 2Y* / -_________________________。 5.若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指 针。在这种存储结构中,n个结点的二叉树共有_______个指针域,其中有________个指针域是存放了地址,有______________个指针是空指针。 6.对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点 分别有______个和______个。 7.AOV网是一种___________________的图。 8.在一个具有n个顶点的无向完全图中,包含有_____条边,在一个具有n个顶点的有向 完全图中,包含有_____条边。 9.假定一个线性表为(12,23,74,55,63,40),若按Key % 4条件进行划分,使得同一余数的元 素成为一个子表,则得到的四个子表分别为__________________________、______________、_____________________和_____________________。

数据结构练习题及答案

数据结构试题及答案 第一章 一、选择题 1、研究数据结构就是研究( D )。 A. 数据的逻辑结构 B. 数据的存储结构 C. 数据的逻辑结构和存储结构 D. 数据的逻辑结构、存储结构及其基本操作 2、算法分析的两个主要方面是( A )。 A. 空间复杂度和时间复杂度 B. 正确性和简单性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 3、具有线性结构的数据结构是( D )。 A. 图 B. 树 C. 二叉树 D. 栈 4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。 A. 可执行性、可移植性和可扩充性 B. 可执行性、有穷性和确定性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和确定性 5、下面程序段的时间复杂度是( C )。 for(i=0;i=(y+1)*(y+1)) y=y+1; A. O(n) B. )(n O C. O(1) D. O(n 2) 12. 算法分析的目的是( C ) A) 找出数据结构的合理性 B) 研究算法中的输入和输出的关系 C) 分析算法的效率以求改进 D) 分析算法的易懂性和文档性 13. 数据结构中,与所使用的计算机无关的是数据的 C 结构; A) 存储 B) 物理 C) 逻辑 D) 物理和存储

数据结构试题及答案(十套)

数据结构试题及答案(十套)数据结构试题及答案(十套) 一、选择题 1. 数据结构是指()。 A. 存储数据的方式 B. 数据的逻辑结构和物理结构 C. 数据的存储结构和存储方式 D. 数据的逻辑结构、存储结构和存储方式 答案:D 2. 在数据结构中,线性表的存储方式包括()。 A. 顺序存储和链式存储 B. 数组存储和链表存储 C. 顺序存储、链表存储和索引存储 D. 顺序存储、链表存储和树形存储 答案:A 3. 栈是一种()的数据结构。 A. 先进先出

B. 先进后出 C. 后进先出 D. 后进后出 答案:C 4. 队列是一种()的数据结构。 A. 先进先出 B. 先进后出 C. 后进先出 D. 后进后出 答案:A 5. 二叉树中,度为0的节点称为()。 A. 叶子节点 B. 根节点 C. 中间节点 D. 子节点 答案:A 6. 以下哪个排序算法是稳定的?

A. 快速排序 B. 选择排序 C. 插入排序 D. 希尔排序 答案:C 7. 图中表示顶点之间关系的边的数量称为()。 A. 顶点度数 B. 边数 C. 路径数 D. 网络 答案:B 8. 哈希表通过()来实现高效的查找操作。 A. 散列函数 B. 排序算法 C. 遍历操作 D. 顺序存储 答案:A

9. 平衡二叉树是一种具有左右子树高度差不超过()的二叉树。 A. 0 B. 1 C. 2 D. 3 答案:B 10. 在链表中,删除节点的操作时间复杂度是()。 A. O(1) B. O(logn) C. O(n) D. O(nlogn) 答案:A 二、填空题 1. 在顺序存储结构中,元素之间的逻辑关系由()表示。 答案:下标 2. 二叉查找树的中序遍历结果是一个()序列。 答案:递增 3. 哈希表通过散列函数将关键字映射到()上。

数据结构试题及答案(十套)

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

(完整版)数据结构练习题及参考答案

数据结构练习题 第一部分绪论 一、单选题 1. 一个数组元素a[i]与________的表示等价。 A、 *(a+i) B、 a+i C、 *a+i D、 &a+i 2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。 A、参数类型 B、参数个数 C、函数类型 3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数 A、指针 B、引用 C、值 4. 下面程序段的时间复杂度为____________。 for(int i=0; i

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

数据结构练习题(含答案) ①A.操作对象B.计算方法C.逻辑结构D.数据映象②A.存储结构B.关系C.运算D.算法2.数据结构DS(DataStruct)可以被形式地定义为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.算法的五个重要特性是____,____,____,____,____。

数据结构习题和答案及解析

第 1 章绪论 课后习题讲解 1. 填空 ⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 【解答】数据元素 ⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。 【解答】数据项,数据元素 【分析】数据结构指的是数据元素以及数据元素之间的关系。 ⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。 【解答】集合,线性结构,树结构,图结构 ⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。 【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系 ⑸算法具有五个特性,分别是()、()、()、()、()。 【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性 ⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。 【解答】自然语言,程序设计语言,流程图,伪代码,伪代码 ⑺在一般情况下,一个算法的时间复杂度是()的函数。 【解答】问题规模 ⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。 【解答】Ο(1),Ο(nlog2n) 【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。 2. 选择题 ⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。 A 线性结构 B 非线性结构 C 存储位置 D 指针 【解答】C,D 【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。

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

数据结构练习题(含答案) 数据结构练习题习题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;ii++) for (j=0;j j++) A[i][j]=0; 8. 分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是__ __。 for (i=0;ii++) for (j=0; j j++) A[i][j]=0; 9. 分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是__ __。 s=0; for (i=0;ii++) for (j=0;jj++) for (k=0;kk++) s=s+B[i][j][k]; sum=s;

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

数据结构练习题 习题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

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

数据结构练习题(含答案) 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.数据对象 1/ 62

② A.操作 B.映象 C.存储 D.关系3. 在数据结构中,从逻辑上可以把数据结构分成。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构4. 算法分析的目的是① ,算法分析的两个主要方面是② 。 ① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性② A. 空间复杂性和时间复杂性 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性5. 计算机算法指的是① ,它必具备输入、输出和② 等五个特性。 ① 2/ 62

A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 1.2 填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括 、 和 三种类型,树形结构和图形结构合称为 。 2. 在线性结构中,第一个结点 前驱结点,其余每个结点有且只有 个前驱结点;最后一个结点 后续结点,其余每个结点有且只有 个后续结点。 3. 在树形结构中,树根结点没有 结点,其余每个结点有且只有 个直接前驱结点,叶子结点没有 3/ 62

相关主题
文本预览
相关文档 最新文档