数据结构之循环队列的实现
来源:互联网 发布:建网站做淘宝客 编辑:程序博客网 时间:2024/05/22 07:55
/********************循环队列(顺序存储结构)******************/#include"stdio.h"#include"stdlib.h"#define MAXSIZE 20#define ERROR 0#define OK 1#define FALSE 0#define TRUE 1typedef int ElemType;typedef int Status;typedef struct{ElemType data[MAXSIZE];int front;int rear;}SqQueue;/****************Operator***********************/void InitQueue(SqQueue *Q)//初始化队列{Q->front=Q->rear=0;}void ClearQueue(SqQueue *Q)//清空队列{Q->front=Q->rear;}void DestroyQueue(SqQueue *Q)//销毁队列{free(Q);}Status EmptyQueue(SqQueue Q)//判断队列是否为空{if(Q.front==Q.rear)return TRUE;return FALSE;}int QueueLength(SqQueue Q)//返回队列的长度{return (Q.rear-Q.front+MAXSIZE)%MAXSIZE;}Status EnQueue(SqQueue *Q, ElemType e)//入队操作{if((Q->rear+1)%MAXSIZE==Q->front)//判断队列是否满了return ERROR;Q->data[Q->rear]=e;Q->rear=(Q->rear+1)%MAXSIZE;return OK;}Status DeQueue(SqQueue *Q,ElemType *e)//出队操作,将队头元素返回给e{if(EmptyQueue(*Q))return ERROR;*e=Q->data[Q->front];Q->front=(Q->front+1)%MAXSIZE;return OK;}void PrintQueue(SqQueue Q)//打印队列{int i;if(!EmptyQueue(Q)){for(i=Q.front;i<Q.rear;i++){printf("%6d",Q.data[i]);}printf("\n");}}main(void){SqQueue *Q;ElemType *e;e=(ElemType*)malloc(sizeof(ElemType));Q=(SqQueue *)malloc(MAXSIZE * sizeof(SqQueue));InitQueue(Q);EnQueue(Q,12);EnQueue(Q,14);EnQueue(Q,13);PrintQueue(*Q);DeQueue(Q,e);PrintQueue(*Q);printf("%6d\n",*e);}
0 0
- 简单数据结构的实现之循环队列
- 数据结构之循环队列的实现
- JAVA数据结构之循环队列的实现
- 数据结构学习之循环队列的另一种c++实现
- 【c++版数据结构】之循环队列的实现
- 数据结构之——基于数组实现的循环队列
- 数据结构学习之循环队列c++实现
- 数据结构C语言实现之循环队列
- 数据结构C语言实现之循环队列
- 数据结构之---C语言实现循环队列
- 数据结构之循环数组实现队列
- Java数据结构实现之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- Android 清除消息
- centOS进度条显示到满以后就一直卡住不动了
- AJAX向SpringMVC controller 传JSONArray并将String转换成JSONArray
- SAE J1939学习笔记(四)
- [LeetCode]Reverse Words in a String
- 数据结构之循环队列的实现
- IOS开发 @property中assign、copy 、retain等关键字的理解
- Life is hard!
- android canvas 画布
- A collection of not-so-obvious Python stuff you should know
- 【Android】不依赖焦点和选中的TextView跑马灯【2】
- SAE J1939学习笔记(五)
- 数据结构之链队列的实现
- android中Activity,Service和线程之间的通信