数据结构笔记-队列
2018-12-01 本文已影响0人
Veahow
队列 Queue
一、存储
- 伪代码
typedef struct{
ElementType data[MAX_SIZE]; // 队列的顺序存储
int front, rear; // 队头队尾指针
}Queue;
- C语言实例(部分代码)
#define MAX_SIZE 100
typedef int ElementType;
typedef struct{
ElementType data[MAX_SIZE]; // 队列的顺序存储
int front, rear; // 队头队尾指针
}Queue;
二、操作
1.入队
- 伪代码
bool EnQueue(Queue &q, int x)
{
// 队列满 入队失败
if((q.rear + 1) % MAX_SIZE == q.front) return false;
// 队列未满 入队成功 队尾插入
q.data[rear] = x;
q.rear = (q.rear + 1) % MAX_SIZE;
return true;
}
2.出队
- 伪代码
bool DeQueue(Queue &q, int &x)
{
if(q.rear == q.front) return false; // 队列空 出队失败
// 队列未空 出队成功并返回元素到x 队头删除
x = q.data[q.front];
q.front = (q.front + 1) % MAX_SIZE;
return true;
}