第一章绪论

绪论

1、单选题:
‎以下与数据的存储结构无关的术语是‍
选项:
A: 循环队列
B: 链表
C: 哈希表
D: 栈
答案: 【 栈

2、单选题:
‌数据结构中数据之间的逻辑关系被称为‍
选项:
A: 数据的存储结构
B: 数据的基础操作
C: 程序的算法
D: 数据的逻辑结构
答案: 【 数据的逻辑结构

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

4、判断题:
‎数据项是数据的最小单位‌
选项:
A: 正确
B: 错误
答案: 【 正确

5、判断题:
‏每种数据结构都应具备三种基本运算:插入、删除和查找。‍
选项:
A: 正确
B: 错误
答案: 【 错误

6、判断题:
​算法独立于具体的程序设计语言,与具体的计算机无关。‌
选项:
A: 正确
B: 错误
答案: 【 正确

7、填空题:
‏数据结构中评价算法的两个重要指标是‏
答案: 【 时间复杂度和空间复杂度

8、填空题:
‌数据结构是由数据的           、               和              三部分组成。‍
答案: 【 逻辑结构、存储结构、运算

课堂练习

1、填空题:
‎分析以下算法的时间复杂度。‌‎int fun(int n){int i=1,j=100 ;while (i<n) {    ++j;     i+=2;      }}‌
答案: 【 O(n)

2、填空题:
分析以下算法的时间复杂度。​int fun(int n){int i=1,s=1 ;while (s<n)       s+=++i ;return i;}​‎​
答案: 【 O(根号n)

第二章栈

几种表达式

1、单选题:
​中缀表达式(A+B)*(C-D)/(E-F*G)的后缀表达式是‎
选项:
A: A+B*C-D/E-F*G
B: AB+CD-*EFG*-/
C: AB+C*D-E/F-G*
D: ABCDEFG+*-/-*
答案: 【 AB+CD-*EFG*-/

1、单选题:
‌若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈操作,则不可能得到的出栈序列是‌
选项:
A: d,c,e,b,f,a
B: c,b,d,a,e,f
C: b,c,a,e,f,d
D: a,f,e,d,c,b
答案: 【 a,f,e,d,c,b

2、单选题:
‏表达式a*(b+c)-d的后缀表达式是‎
选项:
A: abcd*+-
B: abc+*d-
C: abc*+d-
D: -+*abcd
答案: 【 abc+*d-

3、单选题:
‌输入序列为ABC,可以变成CBA时,经过的栈操作为​
选项:
A: push,pop,push,pop,push,pop
B: push,push,push,pop,pop,pop
C: push,push,pop,pop,push,pop
D: push,pop,push,push,pop,pop
答案: 【 push,push,push,pop,pop,pop

4、判断题:
‎同一组不重复输入序列执行不同的入、出栈组合操作,所得结果也可能相同。‍
选项:
A: 正确
B: 错误
答案: 【 正确

5、判断题:
‏设栈采用顺序存储结构。若已有i-1个元素入栈,则将第i个元素入栈时,入栈算法的时间复杂性为O(i)。‏
选项:
A: 正确
B: 错误
答案: 【 错误

6、判断题:
‏栈是实现过程和函数等子程序必须的结构。‎
选项:
A: 正确
B: 错误
答案: 【 正确

7、填空题:
‌栈是受限的线性表,其运算遵循                    的原则。​
答案: 【 FILO,或者LIFO,或者先进后出,或者后进先出

8、填空题:
‍设a=6,b=4,c=2,d=3,e=2,则后缀表达式abc-/de*+的值为                          ‍
答案: 【 9

9、填空题:
‏有五个数据依次进栈:1,2,3,4,5.在各种出栈的序列中,以3,4先出栈的序列有                     个。‎
答案: 【 3

栈的LIFO特性

1、单选题:
‍设栈S和队列Q的初始状态均为空,元素a,b,c,d,e,f,g依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是b,d,c,f,e,a,g,则栈S的容量至少是?‎
选项:
A: 1
B: 2
C: 3
D: 4
答案: 【 3

2、单选题:
‍如进栈序列1,2,3,4,5.可能得到的出栈序列为?‏
选项:
A: 1,2,5,3,4
B:  3,1,2,5,4
C: 3,2,5,4,1
D: 1,4,2,3,5
答案: 【 3,2,5,4,1

栈的顺序实现

1、判断题:
​顺序存储结构要求连续的存储区域,在存储管理上不够灵活,因此不常用。‏
选项:
A: 正确
B: 错误
答案: 【 错误

2、判断题:
​对任何数据结构,链式存储结构一定优于顺序存储结构。‎
选项:
A: 正确
B: 错误
答案: 【 错误

第三章队列

队列的定义

1、单选题:
​栈和队列的共同点是​
选项:
A: 都是先进先出
B: 都是后进先出
C: 只允许在端点处插入和删除元素
D: 没有共同点
答案: 【 只允许在端点处插入和删除元素

2、判断题:
‍栈和队列都是操作受限的线性表。栈是插入和删除只能在一端进行的线性表;队列是插入在一端进行,删除在另一端进行的线性表。​
选项:
A: 正确
B: 错误
答案: 【 正确

队列的顺序实现

1、单选题:
‌已知循环队列存储在一维数组A[0..n-1]中,且队列非空时front和rear分别指向队头元素和队尾元素。若初始时队列为空,且要求第1个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是‌
选项:
A: 0,0
B: 0,n-1
C: n-1,0
D: n-1,n-1
答案: 【 0,n-1

2、填空题:
​循环队列的引入,目的是为了克服‏
答案: 【 假溢出时大量移动元素

顺序队列

1、单选题:
‌为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是                                   ​
选项:
A: 栈
B: 队列
C: 树
D: 图
答案: 【 队列

2、单选题:
​已知循环队列存储在一维数组A[0..n-1]中,且队列非空时front和rear分别指向队头元素和队尾元素。若初始时队列为空,且要求第1个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是​
选项:
A: 0,0
B: 0,n-1
C: n-1,0
D: n-1,n-1
答案: 【 0,n-1

3、单选题:
‌允许对队列进行的操作有‍
选项:
A: 对队列中元素排序
B: 取出最近进队列的元素
C: 在队头元素之前插入元素
D: 删除队头元素
答案: 【 删除队头元素

4、判断题:
​栈和队列都是顺序存取的线性表,但它们对存取位置的限制不同。‍
选项:
A: 正确
B: 错误
答案: 【 正确

5、判断题:
‏通常使用队列的FILO特性进行函数或过程的调用。‌
选项:
A: 正确
B: 错误
答案: 【 错误

6、判断题:
‍循环队列是逻辑上形成了环状,物理实现上仍然是连续的数组。‍
选项:
A: 正确
B: 错误
答案: 【 正确

7、填空题:
‍已知一循环队列的存储空间为[m..n],其中n>m,队头和队尾指针分别为front和rear,则此循环队列判断队满的条件是                               ‌
答案: 【 (rear+1)%(n-m+1)==front

8、填空题:
​循环队列容量为Q,当rear<front时,队列的长度为                         ‏
答案: 【 (rear-front+Q)%Q

第四章链栈和链队列

栈和队列

1、单选题:
‍队列的“先进先出”特性是指‏
选项:
A: 最后插入队列中的元素总是最后被删除
B: 当同时进行插入、删除操作时,总是插入操作优先
C: 每当有删除操作时,总要先做一次插入操作
D: 每次从队中删除的总是最早插入的元素
答案: 【 最后插入队列中的元素总是最后被删除

2、单选题:
‏四个元素1,2,3,4依次进栈,出栈次序不可能出现的情况是‎
选项:
A: 1,2,3,4
B: 4,1,3,2
C: 1,4,3,2
D: 4,3,2,1
答案: 【 4,1,3,2

3、单选题:
​若用单链表来表示队列,下列几种数据结构中最合适的是‌
选项:
A: 带尾指针的非循环链表
B: 带尾指针的循环链表
C: 带头指针的非循环链表
D: 带头指

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

发表评论

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