队列对于临时数据的处理也十分有趣,它跟栈一样都是有约束条件的数组。区别在于我们想要按什么顺序去处理数据,而这个顺序当然是要取决于具体的应用场景。
你可以将队列想象成是电影院排队。排在最前面的人会最先离队进入影院。套用到队列上,就是首先加入队列的,将会首先从队列移出。因此计算机科学家都用缩写“FIFO”(first in, first out)先进先出,来形容它。
与栈类似,队列也有3个限制(但内容不同)。
❏ 只能在末尾插入数据(这跟栈一样)。
❏ 只能读取开头的数据(这跟栈相反)。
❏ 只能移除开头的数据(这也跟栈相反)。
下面来看看它是怎么运作的,先准备一个空队列。
首先,插入5(虽然栈的插入就叫压栈,但队列的插入却没有固定的叫法,一般可以叫放入、加入、入队)。
然后,插入9。
接着,插入100。
目前为止,队列表现得还跟栈一样,但要是移除数据的话,就会跟栈反着来了,因为队列是从开头移除数据的。
想移除数据,得先从5开始,因为开头就是它。
接着,移除9。
这样一来,队列就只剩下100了。