数据结构与算法习题及答案 下载本文

内容发布更新时间 : 2024/11/15 15:07:37星期一 下面是文章的全部内容请认真阅读。

第1章 绪论

习题

1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 3.简述逻辑结构的四种基本关系并画出它们的关系图。 4.存储结构由哪两种基本的存储方法实现? 5.选择题

(1)在数据结构中,从逻辑上可以把数据结构分成( )。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构

(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.栈 6.试分析下面各程序段的时间复杂度。 (1)x=90; y=100;

while(y>0) if(x>100)

{x=x-10;y--;} else x++;

(2)for (i=0; i

for (j=0; j

(3)s=0;

for i=0; i

for(j=0; j

s+=B[i][j];

sum=s; (4)i=1;

while(i<=n) i=i*3; (5)x=0;

for(i=1; i

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

x++;

(6)x=n; //n>1

y=0;

while(x≥(y+1)* (y+1)) y++;

(1)O(1) (2)O(m*n) (3)O(n2) (4)O(log3n)

(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2) (6)O(n)

第2章 线性表

1.选择题

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

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

(2)在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是( )。 A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) B.在第i个结点后插入一个新结点(1≤i≤n) C.删除第i个结点(1≤i≤n) D.将n个结点从小到大排序 (3) 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动 的元素个数为( )。

A.8 B.63.5 C.63 D.7 (4)链接存储的存储结构所占存储空间( )。

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

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

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

(5)线性表若采用链式存储结构时,要求内存中可用存储单元的地址( )。 A.必须是连续的 B.部分地址必须是连续的 C.一定是不连续的 D.连续或不连续都可以

(6)线性表L在( )情况下适用于使用链式结构实现。

A.需经常修改L中的结点值 B.需不断对L进行删除插入 C.L中含有大量的结点 D.L中结点结构复杂 (7)单链表的存储密度( )。

A.大于1 B.等于1 C.小于1 D.不能确定

(8)将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是( )。 A.n B.2n-1 C.2n D.n-1

(9)在一个长度为n的顺序表中,在第i个元素(1≤i≤n+1)之前插入一个新元素时须向后移动( )个元素。

A.n-i B.n-i+1 C.n-i-1 D.i (10) 线性表L=(a1,a2,……an),下列说法正确的是( )。 A.每个元素都有一个直接前驱和一个直接后继 B.线性表中至少有一个元素

C.表中诸元素的排列必须是由小到大或由大到小

D.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。

(11) 若指定有n个元素的向量,则建立一个有序单链表的时间复杂性的量级是( )。 A.O(1) B.O(n) C.O(n2) D.O(nlog2n)