1.(单选题,7.1 分)
在单链表中,若p结点不是尾结点,在其后插入s结点的操作是( )。
A.s.next=p; p.next=s;
B.s.next=p.next; p.next=s;
C.s.next=p.next; p=s;
D.p.next=s; s.next=p;
答案:B
2.(单选题,7.1 分)
在一个单链表中,删除p结点(非尾结点)之后的一个结点的操作是( )。
A.p.next=p
B.p.next.next=p.next
C.p.next.next=p
D.p.next=p.next.next
答案:D
.(单选题,7.1 分)
与单链表相比,双链表的优点之一是( )。
A.插入、删除操作更简单
B.可以进行随机访问
C.可以省略表头指针或表尾指针
D.访问前后相邻结点更方便
答案:D
.(单选题,7.1 分)
以下关于单链表的叙述正确的是( )。
I. 结点除自身信息以外还包括指针域,存储密度小于顺序表
II. 找第i个结点的时间为O(1)
III.在插入、删除运算时不必移动结点
A.仅I、II
B.仅II、III
C.仅I、III
D.I、II、III
答案:C
5.(单选题,7.1 分)
通过含有n (n>=1)个元素的数组a, 采用头插法建立一个单链表L,则L中结点的值的次序( )。
A.与数组a的元素次序相同
B.与数组a的元素次序相反
C.与数组a的元素次序无关
D.以上都不对
答案:B
6.(单选题,7.1 分)
某线性表最常用的运算是在尾元素之和插入元素和删除开始元素,则以下( )存储方式最节省运算时间。
A.单链表
B.仅有头结点指针的循环单链表
C.双链表
D.仅有尾结点指针的循环单链表
答案:D
7.以下关于有序表的叙述正确的是( )。
A.有序表只能采用顺序表存储
B.有序表中元素之间的关系是非线性关系
C.有序表只能采用链表存储
D.有序表既可以采用顺序表存储,也可以采用链表存储。
答案:D
计算插入和删除的时间复杂度
8.(填空题, 7.1 分)
在不带头结点的循环单链表L中,至少有一个结点的条件是( ),尾结点p的条件是( )。
(1) L.next!=L
(2) p.next==L
9.(填空题, 7.2 分)
在线性表的顺序存储结构中,元素之间的逻辑关系是通过( )决定的;在线性表的链式存储结构中,元素之间的逻辑关系是通过( )决定的。
(1) 物理存储位置
(2) 指针域
10.(填空题, 7.2 分)
带头结点的单链表L为空表的判定条件是( )。
11.(填空题, 7.2 分)
对于双链表,删除p结点的前驱结点需要修改( )个指针域。
2
12.(填空题, 7.2 分)
在结点个数大于1的循环单链表中,指针p指向其中某个结点,当执行以下程序段后让指针s指向结点p的前驱结点,请填空。
s=p;
while( ) :
s=s.next
s.next!=p
13.(填空题, 7.2 分)
线性表采用某种链式存储结构,在该链表上删除尾结点的时间复杂度为O(1), 则该链表是( )链表