练习题(第12章)参考答案
第一、二章的练习题
一、选择题
1.数据结构可以用二元组来表示,它包括(A)集合K和K上的(C)集合R。
A、数据元素
B、存储结构
C、元素之间的关系
D、逻辑结构
2.数据结构在计算机内存中的表示是指(A)。
A、数据的存储结构
B、数据结构
C、数据的逻辑结构
D、数据元素之间的关系
3.在数据结构中,与所使用的计算机无关的是数据的(A)结构。
A、逻辑
B、存储
C、逻辑和存储
D、物理
4.以下说法中正确的是(D)。
A、数据元素是数据的最小单位
B、数据项是数据的基本单位
C、数据结构是带结构的各数据项的集合
D、一些表面上很不相同的数据可以有相同的逻辑结构
5.线性表的顺序存储结构是一种( A )的存储结构,线性表的链式存储结构是一种( B )的存储结构。
A、随机存取
B、顺序存取
C、索引存取
D、散列存取
6.对于一个线性,既要求能够进行较快的插入和删除,又要求存储结构能够反映数据元素之间的逻辑关系,则应该选择( B )。
A、顺序存储方式
B、链式存储方式
C、散列存储方式
D、索引存储方式
7.已知,L是一个不带头结点的单链表,p指向其中的一个结点,选择合适的语句实现在p结点的后面插入s结点的操作( B )。
A、p->next=s ; s->next=p->next ;
B、s->next=p->next ; p->next=s ;
C、p->next=s ; s->next=p ;
D、s->next=p ; p->next=s ;
8.单链表中各结点之间的地址( D )。该题做了修改!!!
A、必须连续
B、部分地址必须连续
C、必须不连续
D、连续与否都可以
9.在一个长度为n的顺序表中向第i个元素(0
A、n-i
B、n-i+1
C、n-i-1
D、i
10.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是( B )。
A、单链表
B、静态链表
C、线性链表
D、顺序存储结构
11.在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行( B )操作与链表的长度有关。
A、删除单链表中的第一个元素
B、删除单链表中的最后一个元素
C、在单链表第一个元素前插入一个新元素
D、在单链表最后一个元素后插入一个新元素
12.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是( A )。
A、访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
B、在第i个结点后插入一个新结点(1≤i≤n)
C、删除第i个结点(1≤i≤n)
D、将n个结点从小到大排序
13.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动( B )个元素。
A、8
B、63.5
C、63
D、7
14.单链表的存储密度( C )
A、大于1;
B、等于1;
C、小于1;
D、不能确定
15、链表不具备的特点( A )。
A、可随机访问任结点
B、插入删除不需要移动元素
C、不必事先估计存储空间
D、所需空间与其长度成正比
16、非空的单循环链表head的尾结点(由p所指向)满足( C )。
A、p->NULL
B、p==NULL
C、p->next==head
D、p==head
17.若某表最常用的操作是在最后一个结点之后插入一个新结点或删除最后一个结点,则采用( D )存储方式最节省时间。
A、单链表
B、给出表头结点的单循环链表
C、双向链表
D、带头结点的双循环链表
18、在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行()操作与链表长度有关。
A、删除单链表中第一个结点
B、删除单链表是最后一个结点
C、在单链表第一个结点前插入一个新结点
D、在单链表最后一个结点后插入一个新结点
19、设有两个长度为n的不带头结点的单链表,结点类型相同。其中,一个单链表h1是循环链表,而另一个单链表h2是非循环链表,则( B )。
A、对于两个链表来说,删除第一个结点的操作,其时间复杂度都是O(1)
B、对于两个链表来说,删除最后一个结点的操作,其时间复杂度都是O(n)
C、循环链表要比非循环链表占用更多的内存空间
D、h1和h2是不同类型的变量
20、下面程序段的时间复杂度为( C )。
void prime(int n)
{ int i=2;
shile(n%i!=0&&i if(i*1.0>sqrt(n)) cout< dlse cout< } A、O(1) B、O(n) C、O(n) D、O(n2)