第一周 绪论

第一章小测验

1、单选题:
‎研究数据结构就是研究(   )。‌
选项:
A: 数据的逻辑结构
B: 数据的存储结构
C: 数据的逻辑结构和存储结构
D: 数据的逻辑结构、存储结构及其数据在运算上的实现
答案: 【 数据的逻辑结构、存储结构及其数据在运算上的实现

2、单选题:
‍根据数据元素之间关系的不同特性,以下4类基本逻辑结构反映了4类基本数据组织形式。下列解释错误的是(   )。‍
选项:
A: 线性结构中结点按逻辑关系依次排列成一条“锁链”
B: 树形结构具有分支、层次特性,其形态有点像自然界中的树
C: 图状结构中各个结点按逻辑关系相互缠绕,任何两个结点都可以邻接
D: 集合中任何两个结点之间都有逻辑关系,但组织形式松散
答案: 【 集合中任何两个结点之间都有逻辑关系,但组织形式松散

3、单选题:
​算法分析的目的是(   )‍
选项:
A: 找出数据结构的合理性
B: 研究算法中的输入和输出的关系
C: 分析算法的易懂性和文档性
D: 分析算法的效率以求改进
答案: 【 分析算法的效率以求改进

4、单选题:
‌算法分析的两个主要方面是( )。‍
选项:
A: 空间复杂性和时间复杂性
B: 正确性和简明性
C: 可读性和文档性
D: 数据复杂性和程序复杂性
答案: 【 空间复杂性和时间复杂性

5、单选题:
‏计算机算法指的是(   )。‏
选项:
A: 计算方法
B: 解决问题的有限运算序列
C: 排序方法
D: 调度方法
答案: 【 解决问题的有限运算序列

6、单选题:
‏计算机算法必具备输入、输出和(   )等五个特性。‍
选项:
A: 可行性、可移植性和可扩充性
B: 可行性、确定性和有穷性
C: 确定性、有穷性和稳定性
D: 易读性、稳定性和安全性
答案: 【 可行性、确定性和有穷性

7、单选题:
‍通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量。以下解释错误的是(   )。‎
选项:
A: 正确性算法应能正确地实现预定的功能
B: 易读性指算法应容易阅读和理解,以便于调试、修改和扩充
C: 健壮性指当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果
D: 高效性指算法要达到所需要的时间性能
答案: 【 高效性指算法要达到所需要的时间性能

8、单选题:
‎一个算法的时间耗费的数量级称为该算法的(    )。‍
选项:
A: 效率
B: 速度
C: 可实现性
D: 时间复杂度
答案: 【 时间复杂度

9、单选题:
‍数据的(    )包括查找、插入、删除、更新、排序等操作类型。​
选项:
A: 存储结构
B: 逻辑结构
C: 算法描述
D: 基本操作
答案: 【 基本操作

10、单选题:
下列程序段的时间复杂度是(    )。‌   for(i=0;i<n;i++)‌              for(j=0;j<m;j++)‌                     for(k=0;k<t;k++)‌‏                            c[i][j]=c[i][j]+a[i][k]*b[k][j];‌
选项:
A: O(m+n+t)
B:  O(m*n*t)
C: O(m+n*t) 
D: O(m*t+n)
答案: 【  O(m*n*t)

11、填空题:
分析下面算法(程序段)的时间复杂度是:‏i=1;‏while (i<=n)‏        i=i*2;‏​‏
答案: 【 O(log2n)

12、填空题:
‎线性结构中元素之间存在________关系。‎
答案: 【 一对一

13、填空题:
‎树形结构中元素之间存在_________关系‏
答案: 【 一对多

14、填空题:
‌图状结构中元素之间存在________关系‍
答案: 【 多对多

课堂练习

1、单选题:
‎算法分析的目的是(   )。‌
选项:
A: 找出数据结构的合理性
B: 研究算法中的输入和输出的关系
C: 分析算法的效率以求改进
D: 分析算法的易懂性和文档性
答案: 【 分析算法的效率以求改进

2、单选题:
‍算法分析的两个主要方面是( )。​
选项:
A: 空间复杂性和时间复杂性
B: 正确性和简明性
C: 可读性和文档性
D: 数据复杂性和程序复杂性
答案: 【 空间复杂性和时间复杂性

3、单选题:
‎某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示(   )。‏
选项:
A: O(n)
B: O(nlog2n)
C: O(n2)
D: O(log2n)
答案: 【 O(n2)

第二周 顺序表

随堂测验

1、判断题:
‎顺序表中插入、删除数据元素通常需要移动数据元素。‎
选项:
A: 正确
B: 错误
答案: 【 正确

2、判断题:
‍顺序表中查找指定位序的元素,时间复杂度为O(n)。‌
选项:
A: 正确
B: 错误
答案: 【 错误

第三周 链表及实例应用

2.3 链表的定义及定义

1、单选题:
‎不带头结点的单链表head为空的判定条件是(   )。‍
选项:
A: head==NULL
B: head->next==NULL 
C: head->next==head
D: head!=NULL
答案: 【 head==NULL

2.4 链表的基本操作

1、单选题:
‎在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入一个结点s,则执行(   )。‏
选项:
A: s->next=p->next; p->next=s;                                        
B: p->next=s->next;s->next=p; 
C: q->next=s;s->next=p; 
D: p->next=s;s->next=q;
答案: 【 q->next=s;s->next=p; 

2、单选题:
‍在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是(   )。‏
选项:
A:  p=p->next;
B: p->next=p->next->next; 
C: p->next=p; 
D:  p=p->next->next;
答案: 【 p->next=p->next->next; 

2.5 循环链表及双向链表

1、单选题:
在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->next->next==head,则(   )。‏‎‏
选项:
A: p指向头结点
B: p指向尾结点
C: p的直接后继是头结点
D: p的直接后继是尾结点
答案: 【 p的直接后继是尾结点

2、单选题:
在双向链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是(   )。‍‍‍
选项:
A: p->next=q;q->prior=p;p->next->prior=q;q->next=q;
B: p->next=q;p->next->prior=q;q->prior=p;q->next=p->next; 
C: q->prior=p;q->next=p->next;p->next->prior=q;p->next=q; 
D: q->next=p->next;q->prior=p;p->next=q;p->next->prior=q;
答案: 【 q->prior=p;q->next=p->next;p->next->prior=q;p->next=q; 

2.6 线性表应用举例

1、单选题:
‌在线性表的下列存储结构中,读取元素花费的时间最少的是(   )。‍
选项:
A: 单链表
B: 双链表
C: 循环链表
D: 顺序表
答案: 【 顺序表

第二章 线性表单元测验

1、单选题:
‍若一个线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用(   )存储方式最节省时间。‏‍‏
选项:
A: 顺序表 
B: 单链表 
C: 双链表
D:  单循环链表
答案: 【 顺序表 

2、单选题:
在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是(   )。‌​‌
选项:
A: p=p->next;
B: p->next=p->next->next;
C: p->next=p;
D:  p=p->next->next;
答案: 【 p->next=p->next->next;

3、单选题:
已知指针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;
答案: 【 q->next=s->next;s->next=p; 

4、单选题:
在以下的叙述中,正确的是(   )。‎‎‎
选项:
A: 线性表的顺序存储结构优于链表存储结构
B: 线性表的顺序存储结构适用于频繁插入/删除数据元素的情况
C: 线性表的链表存储结构适用于频繁插入/删除数据元素的情况 
D: 线性表的链表存储结构优于顺序存储结构
答案: 【 线性表的链表存储结构适用于频繁插入/删除数据元素的情况 

5、单选题:
‏循环链表的主要优点是(   )。‏‏‏
选项:

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注