队列经常被拿来和栈进行比较。队列也是一种基本的线性数据结构,但操作特性却与栈截然相反。队列中,元素总是在一端加入,而从另一端移出,也就是说最新进入队列的元素将最后被移出。LeetCode中很多题目涉及队列的使用(例如与树的BFS或层次遍历有关的题目),而Python中对于队列的支持也非常完善。本文将从LeetCode实战的角度出发,演示队列在问题求解中的具体应用。更多关于数据结构或算法方面的知识,推荐参考《算法之美——隐匿在数据结构背后的原理(C++版)》一书(本书繁体中文版已由博硕文化出版集团在中国台湾地区出版发行)。
首先,还是截取《算法之美——隐匿在数据结构背后的原理(C++版)》一书的部分内容来建立队列的初步认识。