第
2
章
线性表
2.1
选择题
1
.
对于线性表最常用的操作是查找指定序号的元素和在末尾插入元素,
则选择
(
)
最节省
时间
A
)顺序表
B
)带头结点的双循环链表
C
)单链表
D
)带尾结点的单循环链表
【答案】
A
2
.
若长度为
n
的线性表采用顺序存储结构,
在其第
i
个位置插入一个新元素的算法时间复杂
度为(
)
(1
≤
i
≤
n+1)
。
A
)
O(0) B
)
O(1) C
)
O(n) D
)
O(n2)
【答案】
C
3
.
双向链表中有两个指针域,
prior
和
next
,
分别指向前驱及后继,
设
p
指向链表中的一个
结点,
q
指向一待插入结点,现要求在
p
前插入
q
,则正确的插入为(
)
A
)
p->prior=q; q->next=p; p->prior->next=q; q->prior=p->prior;
B
)
q->prior=p->prior; p->prior->next=q; q->next=p; p->prior=q->next;
C
)
q->next=p; p->next=q; p->prior->next=q; q->next=p;
D
)
p->prior->next=q; q->next=p; q->prior=p->prior; p->prior=q;
【答案】
D
4
.
在一个具有
n
个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是
(
)
A
)
O(nlog2n
)
B
)
O(1
)
C
)
O(n
)
D
)
O(n2
)
【答案】
C
5
.
在一个以
h
为头指针的单循环链中,
p
指针指向链尾结点的条件是(
)
A
)
p->next==NULL B
)
p->next==h
C
)
p->next->next==h D
)
p->data==-1
【答案】
B
6
.对于一个具有
n
个结点的线性表,建立其单链表的时间复杂度是(
)
A
)
O(n) B
)
O(1) C
)
O(nlog2n) D
)
O(n2)
【答案】
A
8
.在双向链表存储结构中,删除
p
所指的结点时须修改指针(
)
A
)
p->prior->next=p->next p->next->prior=p->prior;
B
)
p->prior=p->prior->prior p->prior->next=p;
C
)
p->next->prior=p p->next=p->next->next
D
)
p->next=p->prior->prior p->prior=p->next->next;
【答案】
A
9
.线性表采用链式存储时,其元素地址(
)
A
)必须是连续的
B
)一定是不连续的
C
)部分地址是连续的
D
)连续与否均可
【答案】
D
2.2
填空题
1
.线性表
L=
(
a1
,
a2
,…,
an
)用数组表示,假定删除表中任一元素的概率相同,则删除
一个元素平均需要移动元素的个数是
_____________
。
【答案】
(
n-1
)
/2
2
.在单链表中设置头结点的作用是
_____________
。
【答案】主要是使插入和删除等操作统一,在第一个元素之前插入元素和删除第一个结点不