1. 队列
队列是一种使用较为广泛的线性表,即同类型的数据元素的有序集合。它的特性与栈不同,插入与删除发生在两个极端;一端用来进行元素插入,另外一端用来进行元素删除。和栈刚好相反,队列是一种先进先出(FIFO, First-In-First-Out)的抽象数据结构,先入队列的元素,将先被访问获取,后入队列的将被最后访问。队列通常用于解决各种系统资源程序,比如操作系统任务调度,就充分利用到队列的先进先出特性;又或者计算机中的某些资源共享,需遵循同步原则,当有多个进程或是线程去获取该资源时,队头(先排队)的进程/线程将获取该资源,当利用释放归还后,第二个再继续获取利用该资源。又或者简单到日常生活中的各种业务排队处理业务等场景。
队列中插入元素,称为“入队列(ENQUEUE)”,入队列在队列的尾部(Rear)端进行;删除元素称为“出队列(DEQUQUE)”,在队列的头部(端)进行。队列的模型图如下