数据结构练习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构练习题

第一章绪论

一.选择题

1、在数据结构的讨论中把数据结构从逻辑上分为()。

A.内部结构与外部结构

B.静态结构与动态结构

C.线性结构与非线性结构

D.紧凑结构与非紧凑结构

2、采用线性链表表示一个向量时,要求占用的存储空间地址()。

A: 必须是连续的 B 部分地址必须是连续的

C: 一定是不连续的C: 可连续可不连续

3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。

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

4、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行()。A: s→link = p→link;p→link = s; B: p→link = s; s→link = q;

C: p→link = s→link;s→link = p;D: q→link= s;s→link= p;

5.从一个二维数组b[m][n]中找出最大值元素的时间复杂度为

A. m

B. n

C. m+n

D. mn

6.在以下时间复杂度的数量级中,数量级最大的是

log B. 2n C. n2 D. !n

A. n2

7.若需要利用形参直接访问实参,则应把形参变量说明为________参数

A、指针

B、引用

C、值

8.下面程序段的时间复杂度为____________。

for(int i=0; i

for(int j=0; j

a[i][j]=i*j;

A、 O(m2)

B、 O(n2)

C、 O(m*n)

D、 O(m+n)

9.执行下面程序段时,执行S语句的次数为____________。

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

for(int j=1; j<=i; j++)

S;

A、 n2

B、 n2/2

C、 n(n+1)

D、 n(n+1)/2

二.填空题

1.通常,评价一个算法有正确性、健壮性、_________、时间复杂度、空间复杂度五个方面。

2.在数据结构中,数据的逻辑结构有线性结构、图结构、________________、_______________四种,物理实现上有顺序结构、索引结构、___________、_____________四种。

第二章线性表

一.选择题

1.在一个单链表HL中,若要向q所指结点之后插入一个指针p指向的结点,则执行.

A. HL=p; p->link=HL

B. P->link=HL; HL=p

C. P->link=q->link; q->link=p

D. P->link=q->link; q=p->link

2.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移个元素。

A、n-i

B、n-i+1

C、n-i-1

D、i

3.在一个长度为n 的顺序存储线性表中,删除第i 个元素(1≤i ≤n+1)时,需要从前向后依次前移 个

元素。

A 、n-i

B 、n-i+1

C 、n-i-1

D 、i

4.在一个长度为n 的线性表中顺序查找值为x 的元素时,查找时的平均查找长度(即x 同元素的平均比较次

数,假定查找每个元素的概率都相等)为 。

A 、n

B 、n/2

C 、(n+1)/2

D 、(n-1)/2

5.在一个单链表HL 中,若要向表头插入一个由指针p 指向的结点,则执行 。

A 、HL = p; p->link = HL;

B 、p->link = HL; HL = p;

C 、p->link = HL; p = HL;

D 、p->link = HL->link; HL->link = p;

6.在一个单链表HL 中,若要在指针q 所指的结点的后面插入一个由指针p 所指的结点,则执行 。

A 、q->link = p->link ; p->link = q;

B 、p->link = q->link; q = p;

C 、q->link = p->link; p->link = q;

D 、p->link = q->link ; q->link = p;

7.在一个单链表HL 中,若要删除由指针q 所指向结点的后继结点,则执行 。

A 、p = q->link ; p->link = q->link;

B 、p = q->link ; q->link = p;

C 、p = q->link ; q->link = p->link;

D 、q->link = q->link->link; q->link = q;

6. 链表不具有的特点是 。

A. 不必事先估计存储空间

B. 可随机访问任一元素

C. 插入删除不需要移动元素

D. 所需空间与线性表长度成正比

二.填空题

1.在单链表中,删除指针 P 所指结点的后继结点的语句是: 。

2.在以HS 为表头指针的单链表中,链表为空的条件分别为________。

向一个链栈插入p 所指向的结点时,需要把栈顶指针的值赋给p 所指向的结点的_____,然后把p 赋给_______。

3.在带表头附加结点的线性链表HL 中,链表为空的条件为________________。

对于单链表,若要在指针 P 所指结点之后插入由指针 S 所指结点,则需要执行的语句序列

为: 。

4.在线性表的顺序存储结构中,若每一个元素占 l 个存储单元,则第I 个元素ai 的存储位置为 LOC(ai) = LOC(a1) +

5.在线性表的单链接存储结构中,每个结点包含有两个域,一个叫 域,另一个叫 域。

6.在下面数组a 中链接存储着一个线性表,表头指针为a[0].link ,则该线性表为

7.对于一个长度为n 的顺序存储的线性表,在表头插入元素的时间复杂度为 ,在表尾插入元素的时

间复杂度为 。

8.对于一个长度为n 的单链接存储的线性表,在表头插入元素的时间复杂度为 ,在表尾插入元素的时

间复杂度为 。

9.在线性表的顺序存储中,若一个元素的下标为i ,则它的前驱元素的下标为 ,后继元素的下标

为 。

10.在线性表的单链接存储中,若一个元素所在结点的地址为p ,则其后继结点的地址为 ,若假

定p 为一个数组a 中的下标,则其后继结点的下标为 。

11.在循环单链表中,最后一个结点的指针指向 结点。

12.在双向链表中每个结点包含有两个指针域,一个指向其 结点,另一个指向其 结点。

13.在循环双向链表中表头结点的左指针域指向 结点,最后一个结点的右指针域指向 结点。

14.在以HL 为表头指针的带表头附加结点的单链表和循环单链表中,链表为空的条件分别为 和 。

三、应用题

1.在下面的每个程序段中,假定线性表La 的类型为List ,元素类型ElemType 为int ,并假定每个程序段是

连续执行的,试写出每个程序段执行后所得到的线性表La 。

(1) InitList(La);

int a[]={48,26,57,34,62,79};

for(i=0; i<6; i++) InsertFront(La,a[i]);

TraverseList(La);

a data next

相关文档
最新文档