队列也是数据结构的一种。队列在我们生活中非常的常见,比如说,当我们去超市买东西时,若是人非常的多,那么我们在收银台就要排队付账,那么先来排队的人就可以先付账离开,而后来的人就要排在队伍的尾部等待。这样的方式其实就是队列的典型运用。

   队列的最显著特点:只允许在队列的头部进行删除操作,只允许在队列的尾部进行插入操作。而这种方式被称作是“先进先出”方式,简称“FIFO”,也就是First In First Out。

   接下来是队列的抽象数据类型。以下摘自书本。

ADT 队列(Queue)

Data
    同线性表,元素具有相同的类型,相邻元素具有前驱和后继的关系。
    
Operation
    InitQueue ( *Q )         : 初始化操作,建立一个空队列Q
    DestroyQueue ( *Q )      : 若队列Q存在则销毁它
    ClearQueen ( *Q )        : 将队列Q清空
    QueueEmpty ( Q )         : 若队列Q为空,则返回true,否则返回false
    GetHead ( Q, *e )        : 若队列存在且非空,用e返回队列Q的队头元素
    EnQueue ( *Q, e )        : 若队列Q存在,插入新元素e到队列Q中并成为队尾元素
    DeQueue ( *Q, *e )       : 删除队列Q中队头元素,并且用e返回其值。
    QueueLength ( Q )        : 返回队列Q的元素个数
endADT