题目描述
第01题
1.以下哪组操作能完成在双向循环链表结点 p 之后插入结点 s 的效果(其中,next 域为
结点的直接后继,prev 域为结点的直接前驱):( )。
A. p->next->prev=s; s->prev=p; p->next=s; s->next=p->next;
B. p->next->prev=s; p->next=s; s->prev=p; s->next=p->next;
C. s->prev=p; s->next=p->next; p->next=s; p->next->prev=s;
D. s->next=p->next; p->next->prev=s; s->prev=p; p->next=s;
第02题
2. 双向链表中有两个指针域 llink 和 rlink,分别指向该结点的前驱和后继。设 P 指向链表中
的一个结点,它的左右结点均非空。现要求删除结点 P,则下面语句序列中错误的是( )。
A.p->rlink->llink = p->rlink; p->llink->rlink = p->llink; dispose(p)
B.p->llink->rlink = p->rlink; p->rlink->llink = p->llink; dispose(p)
C.p->rlink->llink = p->llink; p->rlink->llink->rlink= p->rlink; dispose(p)
D.p->llink->rlink = p->rlink; p->llink->rlink->llink = p->llink; dispose(p)
第03题
3. 向一个栈顶指针为 hs 的链式栈中插入一个指针 s指向的结点时,应执行( )。
A. hs->next = s;
B. s->next = hs; hs = s;
C. s->next = hs->next; hs->next = s;
D. s->next = hs; hs = hs->next;
第04题
4.L是带头节点的单链表,节点P既不是头节点(第一个节点),也不是尾节点,删除P节点直接后
继节点的语句序列是( )
A. P = P -> next;
B. P -> next = P;
C. P - > next = P -> next -> next;
D. P=P -> next -> next;
第05题
5. 在一个单链表中,若删除p所指结点的后续结点,则执行( )
A.p = p->next; p->next = p->next->next;
B. p->next = p->next;
C. p->next = p->next->next;
D. p = p->next->next;
第06题
6. 带头结点的单链表head为空的判定条件是( )
A. head= =NULL
B. head->next= =NULL
C. head->next= =head
D. head!=NULL
第07题
7. 在双向链表存储结构中,删除p所指的结点时需要修改指针( )。
A p->next->prior=p->prior; p->prior->next=p->next
B p->next=p->next->next; p->next->prior=p
C p->prior->next=p; p->prior=p->prior->prior
D p->prior=p->next->next; p->next=p->prior->prior
第08题
8. 不属于链表特点的是( )
A 适用频繁插入 B 适用于频繁删除
C 存取速度快 D 方便扩充
第09题
9. 如果最常用的操作是取第i个结点及其前驱,则采用( )存储方式最节省时间。
A 单链表 B 双链表
C 单循环链表 D 顺序表
第10题
10. 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,
则利用( )存储方式最节省时间。
A 顺序表 B 双链表
C 带头结点的双循环链表 D 单循环链表
第11题
11. 关于双链表的搜索给定元素操作的说法正确的是?( )
A 从两个方向搜索双链表,比从一个方向搜索双链表的速度慢
B 从两个方向搜索双链表,比从一个方向搜索双链表的方差要小
C 从两个方向搜索双链表,比从一个方向搜索双链表速度要快
D 以上说法都不正确
第12题
12. 对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )
A 顺序表 B 用头指针表示的单循环链表
C 用尾指针表示的单循环链表 D 单链表
第13题
13.在数据压缩编码中的哈夫曼编码方法,在本质上是一种( )的策略。
A. 枚举 B. 贪心 C. 递归 D. 动态规划
第14题
14.以下哪组操作能完成在双向循环链表结点 p 之后插入结点 s 的效果(其中,next 域为结
点的直接后继,prev 域为结点的直接前驱):( )。
A. p->next->prev=s; s->prev=p; p->next=s; s->next=p->next;
B. p->next->prev=s; p->next=s; s->prev=p; s->next=p->next;
C. s->prev=p; s->next=p->next; p->next=s; p->next->prev=s;
D. s->next=p->next; p->next->prev=s; s->prev=p; p->next=s;
第15题
15. 假设有一组字符{a,b,c,d,e,f},对应的频率分别为 5%,9%,12%,13%,16%,45%。请问
以下哪个选项可以是字符 a,b,c,d,e,f 分别对应的一组哈夫曼编码?( )
A. 1111,1110,101,100,110,0
B. 1010,1001,1000,011,010,00
C. 000,001,010,011,10,11
D. 1010,1011,110,111,00,01
数据范围与提示
提交说明
复制下面的示范代码,将其对应选项改为正确答案即可(全是大写字母A、B、C、D)
示范代码
#include<iostream>
using namespace std;
int main(){
int n;
cin >> n;
if(n==1)printf("A");//第01题答案
if(n==2)printf("B");//第02题答案
if(n==3)printf("C");//第03题答案
if(n==4)printf("D");//第04题答案
if(n==5)printf("D");//第05题答案
if(n==6)printf("C");//第06题答案
if(n==7)printf("E");//第07题答案
if(n==8)printf("D");//第08题答案
if(n==9)printf("C");//第09题答案
if(n==10)printf("B");//第10题答案
if(n==11)printf("A");//第11题答案
if(n==12)printf("A");//第12题答案
if(n==13)printf("A");//第13题答案
if(n==14)printf("A");//第14题答案
if(n==15)printf("C");//第15题答案
return 0;
}