队列分两种
- Queue: 先进先出,FIFO
- Deque: 头节点尾节点都可随意进出
特点及性能
- size固定
- 查找
Queue
Queue又分为一般队列、可回滚队列和循环队列
- 普通队列,Normal Queue
- 回滚队列,Rollback Queue
- 环形队列,Circular Deque
普通队列一旦队满不能再入队。回滚队列和环形队列队满后都再次入队,回滚队列是通过移除队首元素实现,环形队列是通过覆盖队首元素并后移队首指针实现
普通队列和回滚队列结构和实现方式相似
- curr,队尾标记
- _queue,队列实体,可用array或list实现
环形队列需要队首队尾两个标记
- front,队首标记
- rear,队尾标记
- _queue,队列实体,可用array或list实现
Normal Queue & Rollback Queue 实现(C)
1 | typedef struct _q_unit { |