队列:
队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表(排队问题)
队列ADT:
数据:同线性表,元素具有相同的类型,相邻元素具有前驱和后继关系
操作:
- InitQueue(*Q): 初始化操作,建立一个空队列Q
- DestroyQueue(*Q): 若队列Q存在,则销毁它。
- ClearQueue(*Q): 将队列Q清空
- QueueEmpty(Q): 若队列为空,返回true,否则返回false。
- GetHead(Q, *e): 若队列Q存在且非空,用e返回队列Q的队头元素。
- EnQueue(*Q, e): 若队列Q存在,插入元素e到队列Q中并成为队尾元素
- DeQueue(*Q, *e): 删除队列Q中队头元素,并用e返回其值。
- QueueLength(Q): 返回队列Q的元素个数
FreeBSD中 src/sys/sys/queue.h 版本v1.60.2.1:
SLIST(singly-linked)
STALIQ(singly-linked tail queues)
LIST
TAILQ