循环队列的定义及操作
2017-05-21 18:32
190 查看
#include <stdio.h> #include <malloc.h> #define MAXSIZE 50 typedef struct { int element[MAXSIZE]; int front; //队头指示器 int rear; //队尾指示器 } SeqQueue; void InitQueue(SeqQueue *Q);//初始化操作,将Q初始化为一个空的循环队列 bool EnterQueue(SeqQueue *Q,int x);//入队,将元素x入队 bool DeleteQueue(SeqQueue *Q,int *x);//出队,删除队列的队头元素,用x返回其值 int main(void) { SeqQueue S; SeqQueue *s=&S; int x; int *a=&x; InitQueue(s); for(int i=1; i<=10; i++) EnterQueue(s,i); for(int i=1; i<=10; i++) { DeleteQueue(s,a); printf("%d ",x); } printf("\n"); return 0; } void InitQueue(SeqQueue *Q)//初始化操作,将Q初始化为一个空的循环队列 { Q->front=Q->rear=0; } bool EnterQueue(SeqQueue *Q,int x)//入队,将元素x入队 { if((Q->rear+1)%MAXSIZE==Q->front)//尾指针加一追上头指针,队列已满 return false; Q->element[Q->rear]=x; Q->rear=(Q->rear+1)%MAXSIZE; return true; } bool DeleteQueue(SeqQueue *Q,int *x)//出队,删除队列的队头元素,用x返回其值 { if(Q->front==Q->rear)//队列为空 return false; *x=Q->element[Q->front]; Q->front=(Q->front+1)%MAXSIZE;//重新设置队头指针 return true;//操作成功 }
相关文章推荐
- 循环队列的定义、入队、出队等操作 C++代码实现
- 循环队列的操作
- 循环队列的操作(初始化,入队,出对,销毁,输出)
- 循环队列操作
- 循环队列的实现和操作
- 【数据结构】——顺序循环队列的相关操作
- 数据结构类型定义及基本操作汇总(一)--线性表,单链表,栈和队列
- 静态循环队列的相关操作及详解
- 静态队列、循环队列基本操作
- 循环队列有关操作 环形缓冲区
- 静态循环队列的相关操作及详解
- 循环队列的基本函数操作
- 循环队列代码(支持对共享内存的操作)
- 数据结构——循环队列操作
- 顺序队列(循环队列)基本操作实现 C语言
- 采用顺序存储实现循环队列的初始化、入队、出队操作。
- 简单顺序队列操作(不考虑循环)
- 循环队列基本操作
- 循环队列基本操作(C语言描述)
- bo3-4.c 用单链表的基本操作实现链队列(存储结构由c3-2.h定义)的基本操作(9个)