1-1
分数 2
作者 李廷元单位 中国民用航空飞行学院
线性表采用链式存储表示时,所有结点之间的存储单元地址可以连续也可以不连续。
T
F
分数 2
作者 李廷元单位 中国民用航空飞行学院
顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。
T
F
分数 2
作者 李廷元单位 中国民用航空飞行学院
在单链表中,要访问某个结点,只要知道该结点的指针即可。因此,单链表是一种随机存取结构。
T
F
分数 2
作者 DS课程组单位 临沂大学
链式存储的优点是插入、删除元素时不会引起后续元素的移动,缺点是只能顺序访问各元素。
T
F
分数 2
作者 Martin Ester单位 浙江大学
Given two sorted lists L1 and L2, the fastest algorithm for computing L1⋃L2 has time complexity Θ(NlogN).
给定两个排序列表L1和L2,计算L1⋃L2的最快算法具有时间复杂度Θ(NlogN)。
T
F
分数 1
作者 李廷元单位 中国民用航空飞行学院
链表的每个结点都恰好有一个指针。
T
F
分数 1
作者 朱晓龙单位 西安邮电大学
对单链表来说,只有从头结点开始才能访问到表中所有结点。
T
F
2-1
分数 3
作者 严冰单位 浙大城市学院
线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。
A.必须是连续的
B.部分地址必须是连续的
C.一定是不连续的
D.连续或不连续都可以
分数 3
作者 严冰单位 浙大城市学院
对线性表,在下列情况下应当采用链表表示的是()。
A.经常需要随机地存取元素
B.经常需要进行插入和删除操作
C.表中元素需要占据一片连续的存储空间
D.表中的元素个数不变
分数 3
作者 严冰单位 浙大城市学院
在单链表中,要删除某一指定结点,必须先找到该结点的()。
A.直接前驱
B.自身位置
C.直接后继
D.直接后继的后继
分数 4
作者 严冰单位 浙大城市学院
在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是()。
A.p=p->next
B.p->next=p->next->next
C.p->next=p
D.p=p->next->next
分数 4
作者 严冰单位 浙大城市学院
已知线性表中的元素以值递增有序排列,阅读下列程序,该算法的功能是()。
typedef struct node{
ElemType data;
struct node *next;
}LNode;
void fun4(LNode *h, ElemType min, ElemType max) {
LNode *p=h, *q=NULL;
while (p!=NULL && p->data<=min ) {
q=p; p=p->next;
}
while (p!=NULL && p->data<max ) {
if (p==h) {
h=p->next; delete p; p=h;
}
else {
q->next=p->next; delete p; p=q->next;
}
}
}
A.删除单链表中所有值小于min或大于max的元素
B.将单链表中值大于min的元素删除
C.将单链表中值小于max的元素删除
D.删除单链表中所有值大于min且小于max的元素
分数 4
作者 严冰单位 浙大城市学院
已知单链表中的元素以值递增有序排列,下列算法删除单链表中所有值相同的元素,同时释放被删结点空间。请将该算法补充完整。
typedef struct node{
ElemType data;
struct node *next;
}LNode;
void delete_equal(LNode *h){
LNode *p=h, *q;
if (h==NULL) return;
while (p->next!=NULL) {
q=p->next;
if (p->data!=q->data)
p=q;
else //相邻两元素值相等,则循环删除后继等值结点
while (q!=NULL && q->data==p->data) {
__________________________
}
}
}
A.p->next=q->next; delete q;
B.q->next=p->next; delete q; q=p->next;
C.p->next=q->next; delete q; q= p->next;
D.p->next=q->next; delete q; q=p;
分数 4
作者 孔德桢单位 浙大城市学院
已知有如下C语言代码:
struct node {
int val;
struct node *next;
} p[3] = { 4, &p[2], 6, &p[0], 5, &p[1] };
其中值为6的表达式是:
A.p[1].next->val
B.(&p[0])->next->val
C.p[2].val
D.p[2].next->val
分数 2
作者 杨单位 浙大城市学院
下列哪一项不是普通单向链表设置了表头结点带来的好处。
A.统一了算法的实现,简化了链表操作;
B.表头位置的插入删除更加方便
C.表尾位置的插入删除更加方便
D.统一空表和非空表的处理
分数 2
作者 李廷元单位 中国民用航空飞行学院
单链表中,要将指针q指向的新结点插入到指针p指向的单链表结点之后,下面的操作序列中____是正确的。
A.q=p->next; p->next=q->next;
B.p->next=q->next; q=p->next;
C.q->next=p->next; p->next=q;
D.p->next=q; q->next=p->next;
分数 2
作者 高磊单位 西南石油大学
若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用( )存储方式最节省时间。
A.顺序表
B.单链表
C.双链表
D.单循环链表
分数 1
作者 zhangyong单位 浙大城市学院
对于单链表存储结构,以下说法中错误的是( )
A.一个节点的数据域用于存放线性表的一个数据元素
B.一个节点的指针域用于指向下一个数据元素的节点
C.单链表必须带有头节点
D.单链表中所有节点可以连续也可以不连续存放
4-1
分数 5
作者 李祥单位 湖北经济学院
顺序表 - 地址计算
假设顺序表第 1 个元素的内存地址是 100,每个元素占用 2 字节内存空间,则第 5 个元素的内存地址是
108。
分数 10
作者 张泳单位 浙大城市学院
下列函数用于将链表中各结点的数据依次输出。
struct student {
long data;
struct student *next;
};
void print(struct student *head)
{
struct student *p ;
p=head;
if(head != NULL)
do {
printf("%ld\n”, p->data);
p=p->next;
} while (p!=NULL);
}