关于队列的使用的简单小技巧
所谓队列:最简单的理解就是我们在日常生活中排队的这一个现象。(如果没有人插队的话)那么队列必然会遵循先进先出,即先来的先走。
如题:姑且将其称之为火车站的调度问题吧。
假设有编号分别为 8,4,2,5,3,9,1,6,7的火车按照给出的顺序排队进入火车站,想要火车离开时按照1,2,3,4,5,6,7,8,9的顺序离开火车站。具体的图示如下:
火车可以有很多条轨道,问最少有几条轨道才能满足以上所描述的情形。
具体的解决方案如下。令火车进站,第一个8,则最少要占用一条轨道
接下来是4号火车进站,我们知道四号火车肯定是要先于8号火车出站的,那么此时就必须增加一条轨道,如下图所示
接下来是2号火车。同理。需要增加一条轨道
接下来的5,3,9号火车,只需要依次往后进行排列,如下图所示
对于1号火车需要重新添加一个轨道,最后的排序图如下:
一共需要四条轨道就能够实现这些火车按照正常的顺序出站。