队列的数据结构定义及算法
2013-04-16 15:16
148 查看
顺序队列的定义
循环队列的操作
(1)两状态
队列为空:qu.rear == qu.front
队列为满:(qu.rear+1)%maxSIZE == qu.front
(2)两操作
元素X进队
qu.rear=(qu.rear+1)%maxSIZE;
qu.data[qu.rear] = x;
元素X出队
qu.front = (qu.front+1)%maxSIZE;
x = qu.data[qu.front];
初始化队列
判队列为空
元素进队
元素出队
typedef struct { int data[maxSIZE]; int front, rear; }SqQueue;
循环队列的操作
(1)两状态
队列为空:qu.rear == qu.front
队列为满:(qu.rear+1)%maxSIZE == qu.front
(2)两操作
元素X进队
qu.rear=(qu.rear+1)%maxSIZE;
qu.data[qu.rear] = x;
元素X出队
qu.front = (qu.front+1)%maxSIZE;
x = qu.data[qu.front];
初始化队列
void initQueue(SqQueue &qu) { qu.front = qu.rear = 0; }
判队列为空
int QueueEmpty(SqQueue qu) { if(qu.front == qu.rear) return 1; else return 0; }
元素进队
int enQueue(SqQueue &qu, int x) { if((qu.rear+1)%maxSIZE == qu.front) return 0; else qu.rear=(qu.rear+1)%maxSIZE; qu.data[qu.rear] = x; return 1; }
元素出队
int exQueue(SqQueue &qu, int x) { if(qu.front == qu.rear) return 0; else qu.front = (qu.front+1)%maxSIZE; x = qu.data[qu.front]; return 1; }
相关文章推荐
- 【郝斌数据结构自学笔记】35-46_队列的定义、分类_链式队列伪算法的讲解_循环队列伪算法的讲解
- 【算法和数据结构】线性表(二)队列的定义和封装
- python 下的数据结构与算法---4:线形数据结构,栈,队列,双端队列,列表
- 算法与数据结构【四】——C语言实现循环队列
- 数据结构与算法之栈与队列
- 一步一步复习数据结构和算法基础-链式队列
- PHP数据结构与算法:队列
- Python数据结构与算法之二叉树结构定义与遍历方法详解
- 【数据结构】浅谈算法和数据结构:优先队列和堆排序
- 数据结构和算法笔记1 算法的定义,特性,设计要求
- 【算法和数据结构】图(一)图的定义和封装(C++实现)
- 数据结构与算法——队列
- 数据结构与算法之三(栈和队列的java实现)
- 数据结构和算法 – 3.堆栈和队列
- 第七周数据结构之自建算法库——顺序环形队列【项目1 - 建立顺序环形队列算法库】
- 数据结构上机实践第七周项目2 - 自建算法库——链队(链式队列)
- C++类模板 实现循环队列的顺序存储结构算法 《数据结构》(北京科海) 部分摘抄 自己编写实现
- C++类模板 实现队列的链式存储结构算法 《数据结构》(北京科海) 部分代码摘抄,自己编写运行
- 栈和队列3|进制转换 - 数据结构和算法25
- 数据结构和算法-007 队列