Queue
第一节:对于Queue的理解
0)先打个比方:就像食堂打饭要排队一样,先排队的人可以先打饭,而后排队的人就只有后打饭。那么队列也是这个道理,队列的特点是先进先出。队列只能从后端插入,从前端取出(也就是不能插队)
1)队列可以使用链表和数组来进行构建,下面来分析队列的时间复杂度:
队列在进行搜索时的时间复杂度为O(N),这一点与链表是一样的。但是插入与删除的复杂度都为O(1)因为队列只从屁股后面插,删除只从最前面删。
2)队列的应用:队列可以用于操作系统后台任务中的优先级管理。
比如我的电脑后台有3个应用程序正在同时运行,一个是游戏,一个是ps,还有一个是工作程序。那么这三个应用会被储存到一个队列当中,如果我现在正在打游戏,那么游戏就会排在队列的前端,优先级(内存分配,cpu等)给到游戏;但是这个时候老板突然走了过来,那么我就赶紧切换到了工作程序,此时游戏就会出队,工作程序排到前端,优先级给到工作程序;然后老板让我ps一张图片,这个时候我又打开了ps,那么工作程序就会出队,ps排到队列前端,优先级给到ps。