一. 单选题(共9题,90分)
- (单选题)线性表采用链式存储时,结点的存储地址()。
A. 必须是不连续的
B. 必须是连续的
C. 和头结点的存储地址相连续
D. 连续与否均可
我的答案: D:连续与否均可;正确答案: D:连续与否均可;
10分 - (单选题)链表不具有的特点是()。
A. 不必事先估计存储空间
B. 所需空间与线性表长度成正比
C. 插入删除不需要移动元素
D. 可随机访问任一元素
我的答案: D:可随机访问任一元素;正确答案: D:可随机访问任一元素;
10分 - (单选题)在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入一个结点s,则执行()。
A. s->next=p->next;p->next=s;
B. q->next=s;s->next=p;
C. p->next=s;s->next=q;
D. p->next=s->next;s->next=p;
我的答案: B:q->next=s;s->next=p;;正确答案: B:q->next=s;s->next=p;;
10分 - (单选题)将长度为n的单链表连接在长度为m的单链表之后的算法的时间复杂度为()。
A. O(m)
B. O(m+n)
C. O(n)
D. O(1)
我的答案: A:O(m);正确答案: A:O(m);
10分 - (单选题)在具有n个结点的单链表上查找值为x的元素时,其时间复杂度为()。
A. O(n-1)
B. O(1)
C. O(n2)
D. O(n)
我的答案: D:O(n);正确答案: D:O(n);
10分 - (单选题)在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->next->next==head,则()。
A. p指向尾结点
B. p指向头结点
C. p的直接后继是头结点
D. p的直接后继是尾结点
我的答案: D:p的直接后继是尾结点;正确答案: D:p的直接后继是尾结点;
10分 - (单选题)已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为()。
A. q->next=s->next;s->next=p;
B. s->next=p;q->next=s->next;
C. p->next=s->next;s->next=q;
D. s->next=q;p->next=s->next;
我的答案: A:q->next=s->next;s->next=p;;正确答案: A:q->next=s->next;s->next=p;;
10分 - (单选题)在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是()。
A. p=p->next->next;
B. p->next=p->next->next;
C. p->next=p;
D. p=p->next;
我的答案: B:p->next=p->next->next;;正确答案: B:p->next=p->next->next;;
10分 - (单选题)非空的循环单链表head的尾结点p满足()。
A. p->nexthead
B. pNULL
C. p->nextNULL
D. phead
我的答案: A:p->nexthead;正确答案: A:p->nexthead;
10分
二. 判断题(共1题,10分) - (判断题)用循环单链表表示的链队列中,可以不设队头指针,仅在队尾设置队尾指针。
A. 对
B. 错
我的答案: 对正确答案: 对