1.单选(2分)
若一个线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用( )存储方式最节省时间。
A.双链表
B.单循环链表
C.单链表
D.顺序表
2.单选(2分)
在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是( )。
A.p=p->next;
B.p->next=p->next->next;
C.p=p->next->next;
D.p->next=p;
3.单选(2分)
已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为( )。
A.q->next=s->next;s->next=p;
B.s->next=p;q->next=s->next;
C.s->next=q;p->next=s->next;
D.p->next=s->next;s->next=q;
4.单选(2分)
在以下的叙述中,正确的是( )。
A.线性表的链表存储结构适用于频繁插入/删除数据元素的情况
B.线性表的链表存储结构优于顺序存储结构
C.线性表的顺序存储结构适用于频繁插入/删除数据元素的情况
D.线性表的顺序存储结构优于链表存储结构
5.单选(2分)
循环链表的主要优点是( )。
A.已知某结点位置后能容易找到其直接前驱
B.不再需要头指针
C.在表中任一结点出发都能扫描整个链表
D.在进行插入、删除运算时要移动数据少量数据元素
6.单选(2分)
对一个具有n个元素的线性表,建立其单链表的时间复杂度为:
A.O(1)
B.O(n2)[n的平方]
C.O(n)
D.O(log2n)
7.单选(2分)
在p所指结点后插入s所指结点的正确操作是:
A.s->next=p->next; p->next=s->next;
B.(*p).next=s; (*s).next=(*p).next;
C.s->next =p+1; p->next=s;
D.s->next=p->next; p->next=s;
8.单选(2分)
某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )方式最节省运算时间。
A.单链表
B.仅有头指针的循环单链表
C.仅有尾指针的循环单链表
D.双链表
9.单选(2分)
给定n个数据元素,建立对应的有序单链表的时间复杂度是:
A.O(n2)[n的平方]
B.O(1)
C.O(nlog2n)
D.O(n)
10.单选(2分)
非空的循环单链表head的尾结点(由p所指向)满足是:
A.P==head
B.p->next==head
C.p->next==NULL
D.p==NULL
11.单选(2分)
不带头结点的单链表head为空的判定条件是:
A.head==NULL
B.head->next==NULL
C.head!=NULL
D.head->next==head
12.单选(2分)
在一个双向链表中,若删除p所指结点的后继结点,应执行:
A.p->next=p->next->next; p->next->next->prior=p;
B.p=p->next; p->next=p->next->next;
C.p->next->next->prior=p; p->next=p->next->next;
D.p->next=p->next;p->prior=p->next->prior;
13.单选(2分)
线性表的链式存储结构是一种( )的存储结构。
A.索引存取
B.随机存取
C.散列存取
D.顺序存取
14.单选(2分)
线性表若采用链式存储结构时,要求内存中可用存储单元的地址( )。
A.部分地址必须是连续的
B.连续或不连续都可以
C.必须是连续的
D.一定是不连续的
15.单选(2分)
将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度是:
A.O(n+m)
B.O(1)
C.O(m)
D.O(n)
16.判断(2分)
单链表不是一种随机存储结构。
A.√
B.×
17.判断(2分)
在具有头结点的单链表中,头指针指向链表的第一个数据结点。
A.√
B.×
18.判断(2分)
在线性表的顺序存储结构中,逻辑上相邻的两个元素但是在物理位置上不一定是相邻的。
A.√
B.×
19.判断(2分)
顺序存储的线性表可以随机存取。
A.√
B.×
20.判断(2分)
在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。
A.√
B.×