从深入浅出数据结构(4)到(6),我们分别讨论了什么是表、什么是链表、为什么用链表以及如何用数组模拟链表(游标数组),而现在,我们要进入到对线性表特意加了“线性”二字是因为存在多重表,其不是线性的,而我们现在所说的表都是“一维”、“线性”的。另外就是某些数据结构书籍中特别注意“线性”二字,为了尽量避免与某些知名书籍的冲突,我们加上“线性”二字)的最终讨论(但并不是对表的最后一篇博客哦~),就是两种最有名的线性表:队列和栈。

  在深入浅出数据结构(4)中,我们说过,其实我们所说的“表”用“队列”来形容会更易懂,但“队列”之名被一个更特殊的“表”给占用了,所以我们用“表”来形容一维排列起来的元素集合(如A1,A2,A3,……An)。那么,队列究竟特殊在何处以至于我们将“队列”之名赋予了它呢?回顾我们之前的文章,可以发现,对于普通的表,我们总是“想怎么来就怎么来”:我们可以在任一位置插入、删除,我们处理表中任一位置的元素。但是,当我们回过头来看看现实中的队列,你会发现并不是“想怎么来就怎么来”的,比如排队结账,总是以先到先结账的方式一个一个处理,而后到的则排末尾。所以我们之前所说的“表”和我们日常生活中的“队列”还是有蛮大区别的。那么我们现在要讨论的“队列”和“表”相比有什么不同之处以至于它可以用“队列”来称呼呢?答案很简单,那就是它(队列)也符合“先到先处理(出),后到排末尾”的逻辑╮(╯_╰)╭

  

  想要理解队列是非常简单的,因为它的性质和我们日常生活中的队列是差不多的,

网友评论