队列在计算机科学中的实际应用是什么?我们在哪里使用它们?为什么?我听说我们在视频游戏和计算机模拟程序中使用它们,是真的吗?为什么?除了这两个领域,队列作为数据结构的其他实际应用是什么?
答案 0 :(得分:23)
堆栈用于各种软件中的撤消按钮。最近的大多数变化被推入堆栈。即使浏览器上的后退按钮也可以在堆栈的帮助下工作,其中所有最近访问过的网页都被推入堆栈。
队列用于打印机或上传图像。第一个要输入的是第一个要处理的。
答案 1 :(得分:15)
队列用于您希望在某些实体上有效维护先进先出顺序的任何情况。这些情况在每种类型的软件开发中都会出现。
想象一下,您有一个为数千名用户提供文件的网站。您无法为所有请求提供服务,您只能同时处理100个。公平的政策是先到先得:按到达顺序每次提供100个。队列绝对是最合适的数据结构。
类似地,在多任务操作系统中,CPU无法一次运行所有作业,因此必须按照某些策略对作业进行批处理,然后进行调度。同样,在这种情况下,队列可能是合适的选项。
答案 2 :(得分:8)
我使用队列来优先处理我对SO问题的回复。我尝试过对它们进行多处理,但是对它做了一个完整的哈希。
答案 3 :(得分:3)
所有类型的系统,其中请求/作业/客户端由一个或多个处理程序处理:传入的项目存储在队列中,当处理程序空闲时,它从队列中弹出一个新项目并开始处理它。此模式用于所有Web服务器等。请参阅producer-consumer problem。
答案 4 :(得分:3)
假设您有多个文档要一次打印。您的操作系统将所有这些文档放入队列并将它们发送到打印机。打印机按照文档放入队列的顺序拍摄并打印每个文档,即“先进先出”。
在有多个用户或联网计算机系统的情况下,您可能与其他用户共享打印机。当您请求打印文件时,您的请求将添加到打印队列中。当您的请求到达打印队列的前面时,将打印您的文件。这样可以确保一次只有一个人可以访问打印机,并且这种访问是先到先得的。
答案 5 :(得分:3)
在图表的广度优先(“最浅” - 第一次)搜索中,您将在发现节点时使用队列来存储节点。
答案 6 :(得分:3)
队列的典型用途是在模拟和操作系统中。
Operating systems often maintain a queue of processes that are ready to execute or that are waiting for a particular event to occur.
Computer systems must often provide a “holding area” for messages between two processes, two programs, or even two systems. This holding area is usually called a “buffer” and is often implemented as a queue.
我们的软件队列在现实世界队列中具有对应物。我们排队等候购买披萨,进入电影院,开往收费公路,乘坐过山车。队列数据结构的另一个重要应用是帮助我们模拟和分析这样的真实世界队列。
答案 7 :(得分:2)
算法和数据结构紧密相连
因此,通常使用Queue取决于将操纵Stack Enqueuing和Dequeuing
的算法
反过来。取决于应用程序
例如,如果您正在创建一个应用程序,它将接受来自多个用户的输入,并且您必须以“先来先服务”为基础对其进行服务。这意味着您的应用程序将首先提供服务首先>
而不是每次检查每个请求的时间戳,并查看谁是最早的
你应该将每个传入的请求排入堆栈
并且您每次只需要将堆栈出列以查看下一个请求
答案 8 :(得分:1)
由FIRST IN FIRST OUT [FIFO]进行。第一行先编译n结果打印首先是QUEUE。
答案 9 :(得分:1)
队列使用先进先出概念(FIFO)。第一个到达的工作是第一个被处理的工作。例如操作系统将文档排队等待打印在队列中,打印机只打印第一个文档到达并提供输出
答案 10 :(得分:1)
游戏应用: 探索互联房间迷宫的算法使用队列来跟踪尚未探索的选项
答案 11 :(得分:1)
队列也可用于实现广度优先搜索 - 一种遍历图中所有顶点的算法,该顶点可以从起始顶点到达。
答案 12 :(得分:1)
了解更多信息https://coderworld109.blogspot.in/2017/12/applications-of-queue-data-structure.html
答案 13 :(得分:0)
打印机保持进程。 在CPU调度中。 作为页面替换策略(FIFO)。
有许多现实生活中的例子可能有助于更好地理解队列。例如,无论我们在哪里使用队列获取或提供任何内容。