顺序环形队列的操作实现
2016-10-13 21:03
435 查看
#include<stdio.h> #include<stdlib.h> #define MaxSize 100 typedef int ElemType; typedef struct { ElemType data[MaxSize]; int front,rear; }SqQueue; //初始化环形队列 void InitQueue(SqQueue* &q) { q=(SqQueue*)malloc(sizeof(SqQueue)); q->front=q->rear=0; } //销毁环形队列 void DestroyQueue(SqQueue* &q) { free(q); } //判断环形队列是否为空 bool QueueEmpty(SqQueue* &q) { if(q->front==q->rear) return true; else return false; } //入队 bool enQueue(SqQueue* &q,ElemType &e) { if((q->rear+1)%MaxSize==q->front) return false; q->rear=(q->rear+1)%MaxSize; q->data[q->rear]=e; return true; } //出队 bool deQueue(SqQueue* &q,ElemType &e) { if(q->front==q->rear) return false; q->front=(q->front+1)%MaxSize; e=q->data[q->front]; return true; } //输出环形队列 void printQueue(SqQueue* &q) { while(q->rear!=0) { q->rear=q->rear%MaxSize; printf("%d ",q->data[q->rear]); q->rear--; } } int main() { int i; SqQueue *q; InitQueue(q); for(i=0;i<5;i++) { if(enQueue(q,i)) { printf("入队成功!\n"); } } deQueue(q,i); printf("%d \n",i); printQueue(q); return 0; }
相关文章推荐
- 顺序环形队列的操作实现
- (C语言版)栈和队列(二)——实现顺序存储栈和顺序存储队列的相关操作
- 顺序队列的基本操作实现c++
- 编程实现顺序队列的入队操作和出队操作,并将出队结果输出
- 实现环形队列各种基本运算的算法(用顺序结构)
- 数据机构(10)--顺序循环队列的实现及相关操作
- 顺序队列及链队列的基本操作实现
- 顺序队列(循环队列)基本操作实现 C语言
- 编写一个一个程序实现顺序环形队列各项基本运算(假设队列基本元素类型为Char)
- 实验三:栈和队列的基本操作实现及其应用——顺序栈
- (C语言版)栈和队列(二)——实现顺序存储栈和顺序存储队列的相关操作
- 实验3:栈和队列的基本操作实现及其应用——顺序队列和链队列
- C语言实现顺序队列的初始化、入队、出队等操作(三)
- 环形顺序队列的实现
- 数据结构-队列顺序结构的实现和操作
- 编写一个程序,实现顺序环形队列的各种基本运算。
- 采用顺序存储实现循环队列的初始化、入队、出队操作。
- 链表,顺序表的基本操作及其实现的栈与队列
- 顺序表实现优先级队列
- 顺序队列基本操作