2-1
线性表若采用链式存储结构时,要求内存中可用存储单元的地址 (1分)
- 必须是连续的
- 连续或不连续都可以
- 部分地址必须是连续的
- 一定是不连续的
[解析] 在链式存储结构中,存储数据结构的存储空间可以是连续的,也可以是不连续的,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。
2-2
线性表L在什么情况下适用于使用链式结构实现? (1分)
- 需不断对L进行删除插入
- 需经常修改L中的结点值
- L中含有大量的结点
- L中结点结构复杂
2-3
链表不具有的特点是: (1分)
- 插入、删除不需要移动元素
- 方便随机访问任一元素
- 不必事先估计存储空间
- 所需空间与线性长度成正比
2-4
设h
为不带头结点的单向链表。在h
的头上插入一个新结点t
的语句是:(1分)
h=t; t->next=h->next;
t->next=h->next; h=t;
h=t; t->next=h;
t->next=h; h=t;
2-5
在单链表中,若p
所指的结点不是最后结点,在p
之后插入s
所指结点,则执行 (1分)
s->next=p; p->next=s;
s->next=p->next; p=s;
s->next=p->next; p->next=s;
p->next=s; s->next=p;
2-6
不带表头附加结点的单链表为空的判断条件是头指针head满足条件()。 (1分)
- head==NULL
- head->next==NULL
- head->next== head
- head!=NULL
本题考查链表为空的判定条件。
题目中给出的单链表head是不带头结点的单链表,头结点是指在单链表head第一个结点之前附设的一个结点,头结点的数据域可以不存放任何数据信息,而其指针域存放指向第一个结点的指针。在题目中告诉了我们,第一个结点的指针为head,而整个单链表的存储必须从第一个结点进行,如果链表为空,则说明第一个结点为空,因此链表为空的判定条件是head==NULL。
2-7
可以用带表头附加结点的链表表示线性表,也可以用不带头结点的链表表示线性表,前者最主要的好处是()。 (1分)
- 可以加快对表的遍历
- 使空表和非空表的处理统一
- 节省存储空间
- 可以提高存取表元素的速度
2-8
在单链表中,要删除某一指定结点,必须先找到该结点的()。 (1分)
- 直接前驱
- 自身位置
- 直接后继
- 直接后继的后继
2-9
以下关于链式存储结构的叙述中,()是不正确的。 (1分)
- 结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构
- 逻辑上相邻的结点物理上不必邻接
- 可以通过计算直接确定第i个结点的存储地址
- 插入、删除运算操作方便,不必移动结点
2-11
线性表采用链式存储时,其地址()。 (1分)
- 必须是连续的
- 一定是不连续的
- 部分地址必须是连续的
- 连续与否均可以