- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.5 队列应用 队列是一种简单而基本的数据结构,在各种软件系统中应用十分广泛,例如: CPU资源的竞争问题 (类似地:利用队列来管理各种计算机的资源。) 主机与外部设备之间速度不匹配的问题 在主机、磁盘文件和终端机之间提供一个读写缓冲; 用于实时应用程序(如解决运行程序与键盘处理程序的异步操作问题。) 各种应用系统中的事件规划、事件模拟以及图中的一些非递归的搜索算法等。 汽车加油站。 随着城市里汽车数量的急速增长,汽车加油站也渐渐多了起来。通常汽车加油站的结构基本上是:入口和出口为单行道,加油车道可能有若干条。每辆车加油都要经过三段路程,第一段是在入口处排队等候进入加油车道;第二段是在加油车道排队等候加油;第三段是进入出口处排队等候离开。实际上,这三段都是队列结构。若用算法模拟这个过程,就需要设置加油车道数加2个队列。 模拟打印机缓冲区。 在主机将数据输出到打印机时,会出现主机速度与打印机的打印速度不匹配的问题。这时主机就要停下来等待打印机。显然,这样会降低主机的使用效率。为此人们设想了一种办法:为打印机设置一个打印数据缓冲区,当主机需要打印数据时,先将数据依次写入这个缓冲区,写满后主机转去做其他的事情,而打印机就从缓冲区中按照先进先出的原则依次读取数据并打印,这样做即保证了打印数据的正确性,又提高了主机的使用效率。由此可见,打印机缓冲区实际上就是一个队列结构。 CPU分时系统 在一个带有多个终端的计算机系统中,同时有多个用户需要使用CPU运行各自的应用程序,它们分别通过各自的终端向操作系统提出使用CPU的请求,操作系统通常按照每个请求在时间上的先后顺序,将它们排成一个队列,每次把CPU分配给当前队首的请求用户,即将该用户的应用程序投入运行,当该程序运行完毕或用完规定的时间片后,操作系统再将CPU分配给新的队首请求用户,这样即可以满足每个用户的请求,又可以使CPU正常工作。 1. 掌握栈和队列类型的特点,并能在相应的应用问题中正确选用它们。 2. 熟练掌握栈类型的两种实现方法,特别应注意栈满和栈空的条件以及它们的描述方法。 3. 熟练掌握循环队列和链队列的基本操作实现算法,特别注意队满和队空的描述方法。 4. 理解递归算法执行过程中栈的状态变化过程。 本章学习要点 本章习题 1.填空题 (1) 设栈S和队列Q的初始状态皆为空,元素a1,a2,a3,a4,a5和a6依次通过一个栈,一个元素出栈后即进入队列Q,若6个元素出队列的顺序是a3,a5,a4,a6,a2,a1 ,则栈S至少应该容纳______个元素。 循环队列存储在数组A[0..m]中,则入队时的操作为( )。【中山大学 1999 一、6(1分)】 A. rear=rear+1 B. rear=(rear+1) mod (m-1) C. rear=(rear+1) mod m D. rear=(rear+1)mod(m+1) 4 D 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?( )【浙江大学1999 四、1(4分)】 A. 1和 5 B. 2和4 C. 4和2 D. 5和1 假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为( )。【北京工商大学 2001 一、2(3分)】 A.(rear-front+m)%m B.rear-front+1 C.(front-rear+m)%m D.(rear-front)%m B A 2. 比较栈和队列的相同点和不同点,举例说明。 3. 对于算术表达式3×(5-2)+7,用栈存储式子中的运算对象和运算符,试说明该算术表达式的运算过程。 4.循环队列的优点是什么?如何判断它的空和满? 5.试述队列的链式存储结构和顺序存储结构的优缺点。 题目2:利用深度为n的两个栈S1,S2模拟一个队列,实现队列的入队列、出队列和判空运算。 SqStack ST;定义一个顺序栈; 已知栈的三个运算定义如下: PUSH(ST,x):元素x入ST栈; POP(ST,x):ST栈顶元素出栈,赋给变量x; StackEmpty(ST):判ST栈是否为空。 题目说明: 栈的特点是后进先出,队列的特点是先进先出。 用两个栈S1和S2模拟一个队列时,S1作输入栈,逐个元素压栈,以此模拟队列元素的入队列。 当需要出队列时,S2作输出栈,相当于队列的出队列,若S2为空,将栈S1退栈并逐个压入栈S2中,S1中最先入栈的元素,在
您可能关注的文档
- [名校联盟]高中语文必修四《我有一个梦想》课件.ppt
- [商科帮严重推荐系列] 大学生职业规划之投行篇.doc
- [原创]2015年高考总复习历史 必修Ⅱ 第八单元 第15讲 精耕细作农业生产模式的形成和农耕时代的手工业.ppt
- __(上课用))自然灾害及影响.ppt
- _15、这片土地是神圣的+.ppt
- _Unit_4_inventions__《科学与发明》Reading__2.ppt
- _第6章转移性支出.ppt
- _第九章_全球化与不平衡发展.ppt
- _实用礼仪培训讲义.ppt
- “E电商”如何打造常青店铺--产品矩阵规划VS提升购物体验.ppt
- 2025年马山县市场监管局下属事业单位招聘笔试模拟试题附答案.docx
- 2025年金沙县行政审批和政务信息管理局下属事业单位招聘笔试模拟试题附答案.docx
- 2025年枣庄辅警协警招聘考试备考题库推荐.docx
- 2025年霍邱县行政审批和政务信息管理局下属事业单位招聘笔试模拟试题附答案.docx
- 2025年靖西县行政审批和政务信息管理局下属事业单位招聘笔试模拟试题附答案.docx
- 2025年阳高县财政局下属事业单位招聘笔试模拟试题附答案.docx
- 济南市天桥区社区工作者考试题库含答案(综合卷).docx
- 长春市社区工作者考试题库及参考答案1套.docx
- 社工构化面试题及答案.doc
- 银行核心面试题目及答案.doc
原创力文档


文档评论(0)