在我们学习算法之前,一定是先学习数据结构,今天有学生问我队列这个数据结构到底有什么用。
那么什么是队列呢?
队列(Queue)是一种特殊的线性表,它只允许一段插入数据,另外一端删除数据元素。插入数据的一端叫做表的前端(Front),删除数据元素的另外一端叫做表的后端(Rear),典型的队列操作叫做先进先出(First In First Out,FIFO),分插入过程和删除过程。
学生的问题表现在:逐个进出很费劲,有什么现实意义吗?答案是肯定的。首先,它是一种解决问题的思想。其次它在销售、仓库、抢票等方面具备实际价值,其实在销售业务中,经常需要设计FIFO算法,至少应该借鉴其思路,因为进货价和卖出价是动态的,咱们的成本和后续利润统计要想精准就要用此算法,我也写了一个击鼓传花的小Demo,传到一个人,一个人就会失去游戏资格,最后留下的人获胜,详细代码如下:
游戏显示效果如下: