2009年408真题解析-数据结构篇(未完)

01.为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是( )。

A.栈 B.队列 C.树 D.图
答案:B.队列

解析:由于打印数据是按照顺序输出的,因此适合使用队列这种先进先出的数据结构来实现打印数据缓冲区。主机将要输出的数据依次入队,而打印机则从队列中依次出队数据进行打印,保证了数据的顺序性。因此,打印数据缓冲区的逻辑结构应该是队列。
02.设栈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
答案:C. 3

解析:栈S和队列Q的操作顺序如下:

a进栈S:S={a}

b进栈S:S={a, b}

c进栈S:S={a, b, c}

d进栈S:S={a, b, c, d}

e进栈S:S={a, b, c, d, e}

f进栈S:S={a, b, c, d, e, f}

g进栈S:S={a, b, c, d, e, f, g}

按照给定的元素出队顺序,队列Q的元素顺序应该是:b, d, c, f, e, a, g

所以,栈S的容量至少为3。

相关推荐
云泽8083 小时前
数据结构前篇 - 深入解析数据结构之复杂度
c语言·开发语言·数据结构
逝雪Yuki3 小时前
数据结构与算法——字典(前缀)树的实现
数据结构·c++·字典树·前缀树·左程云
技术思考者3 小时前
Leetcode - 反转字符串
数据结构·算法·leetcode
数据狐(DataFox)4 小时前
CTE公用表表达式的可读性与性能优化
经验分享·python·sql
熬了夜的程序员5 小时前
【华为机试】34. 在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·华为od·华为·面试·golang
草莓熊Lotso6 小时前
【数据结构初阶】--排序(一):直接插入排序,希尔排序
c语言·数据结构·经验分享·其他·排序算法
亦世凡华、6 小时前
React--》实现 PDF 文件的预览操作
经验分享·pdf·react·pdf预览
小徐不徐说6 小时前
C++ 模板与 STL 基础入门:从泛型编程到实战工具集
开发语言·数据结构·c++·qt·面试
Tisfy8 小时前
LeetCode 2411.按位或最大的最小子数组长度:一次倒序遍历
数据结构·算法·leetcode·题解·位运算·遍历
晚云与城9 小时前
【数据结构】-----排序的艺术画卷
数据结构·算法·排序算法