数据结构--循环队列(简易)--C
2017-11-12 16:10
393 查看
#include <stdio.h> #include <stdlib.h> #include <malloc.h> /*循环队列*/ #define OK 1 #define ERROR 0 #define OVERFLOW -2 #define MAXSIZE 10 typedef int Status; typedef int QElemType; typedef struct{ QElemType *base; int front; int rear; }SqQueue; Status InitQueue(SqQueue *q){ q->base=(QElemType *)malloc(sizeof(QElemType)*MAXSIZE); if(!q->base) exit(OVERFLOW); q->front=q->rear=0; return OK; } Status DestoryQueue(SqQueue *q){ free(q->base); q->base=NULL; return OK; } int QueueLenth(SqQueue *q){ return(q->rear-q->front+MAXSIZE)%MAXSIZE; } Status EnQueue(SqQueue *q,QElemType e){ if((q->rear+1)%MAXSIZE==q->front) return ERROR; *(q->base+q->rear)=e; q->rear=(q->rear+1)%MAXSIZE; return OK; } Status DeQueue(SqQueue *q,QElemType *e){ if(q->front==q->rear) return ERROR; *e=*(q->base+q->front); q->front=(q->front+1)%MAXSIZE; return OK; } void QueueTraverse(SqQueue *q){ int i=q->front; printf("QueueTraverse:"); while(i%MAXSIZE!=q->rear){ printf(" %d ",*(q->base+i)); i++; } printf("\n"); } int main(){ SqQueue q; int element; static int a=1; char c; printf("--InitQueue success!\n"); InitQueue(&q); while(a){ printf("**please input 1-5:\n**1.EnQueue 2.DeQueue 3.QueueTraverse 4.QueueLenth 5.back**\n"); scanf("%d",&a); switch(a){ case 1: printf("EnQueue:input queue element:\n"); scanf("%d",&element); EnQueue(&q,element); break; case 2: DeQueue(&q,&element); printf("DeQueue Success---DeQueue Element:%d\n",element); break; case 3: QueueTraverse(&q); break; case 4: printf("QueueLength:%d\n",QueueLenth(&q)); break; case 5: a=0; break; default: printf("input error"); break; } } DestoryQueue(&q); printf("--destroy success\n"); system("pause"); return 0; }
相关文章推荐
- 数据结构循环队列
- 数据结构_循环队列
- 基本数据结构,循环队列的顺序实现。
- 数据结构(22)循环队列--线性表实现
- 数据结构 循环队列的输入输出
- 数据结构:双向链表实现队列与循环链表
- 数据结构:循环队列(队列的顺序表示)
- 数据结构-08 队列(循环队列)
- 数据结构 -- 队列 & 循环队列 -- 数组实现
- 数据结构循环队列——数组模拟实现
- 数据结构之循环队列
- 数据结构学习笔记-队列的顺序存储(循环队列)
- 数据结构:循环队列(C语言实现)
- c语言数据结构——循环队列
- 数据结构--循环队列
- 数据结构-循环队列的基本实现操作
- 数据结构(三)--循环队列
- 数据结构(一) -- 循环队列数组实现
- 【数据结构】循环队列的实现(c++)
- 数据结构循环队列演示程序