基本数据结构:队列、单调队列与优先队列 |
您所在的位置:网站首页 › 优先级和优先数字的区别 › 基本数据结构:队列、单调队列与优先队列 |
队列的思想
队列是一种先进先出(FIFO)的线性表,只允许在队头进行删除操作,在队尾进行插入操作。 先进先出的顺序符合我们日程生活中的事件调度过程,例如排队等等。队列就非常适合模拟这些过程,它的结构示意图如下: 值得注意的是,在前面的元素出队以后其占用的空间就不再被利用,造成了浪费,于是我们在队列存储到允许的最大空间时(但其实这时队列并未真正存满),继续添加的元素将会被放入这些已经出队了的元素原来的位置上,让其重复利用,优化了空间效率,这种特殊的队列叫做:循环队列。按理说只要将现在队列的首尾相连,改造成一个环状结构就能实现循环队列,如图: 但在实际实现上我们通常是采取数组下标取模的方法,让下标循环移动,例如:我允许的队列容量最大为5,而我存放满后又出队了2个元素,这时我们想要再添加元素就必须放在队列第一个位置(即队首)上,这时按下标来说我们存放的是第六个元素,将其与5(容量)取模即可得到它的正确存放位置:1。 队列与栈相同,在STL中有着它的模板:queue #include //使用stl的队列必须包含头文件“queue” #include using namespace std; queue q; //定义格式queue 变量名 int main(){ for(int i=1;i |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |