队列的基本概念

队列的定义

队列也是一种特殊的线性表,插入操作在一端进行,称为队头,删除操作在另一端进行,称为队尾。

队列就跟生活中的排队类似,不允许插队,先排的人可以先得到服务。

队列的特征

  • 先进先出(FIFO)

队列的基本运算

  • 初始化队列
  • 入队
  • 出队
  • 取队头的元素
  • 判断队列是否为空

队列的存储结构

顺序存储结构

  1. #define QueueSize 100
  2. typedef char ElemType;
  3. typedef struct
  4. {
  5. ElemType data[QueueSize]; /*保存队中元素*/
  6. int front,rear; /*队头和队尾指针*/
  7. } SqQueue;

链式存储结构

  1. typedef char ElemType;
  2. typedef struct QNode
  3. {
  4. ElemType data;
  5. struct QNode *next;
  6. } QType; /*链队中结点的类型*/
  7. typedef struct qptr
  8. {
  9. QType *front,*rear;
  10. } LinkQueue; /*链队类型*/