循环队列的相关操作
来源:互联网 发布:数据库count函数怎么用 编辑:程序博客网 时间:2024/05/16 05:11
循环队列的相关操作
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define MAXQSIZE 100#define OK 1#define ERROR 0#define True 1#define False 0#define OVERFLOW -1typedef int Status;typedef struct{ int *base; int front; int rear;}SqQueue;//构建循环队列Status InitQueue(SqQueue *Q){ Q->base=(int *)malloc(MAXQSIZE*sizeof(int)); if(!Q->base) exit(OVERFLOW); Q->front=Q->rear=0; return OK; }//插入操作 Status EnQuenu(SqQueue *Q,int e){ if((Q->rear+1)%MAXQSIZE==Q->front)//判断队列是否已满 return ERROR; Q->base[Q->rear]=e; //插入元素 ,队列的插入只能从队尾 Q->rear=(Q->rear+1)%MAXQSIZE;//rear后移 return OK; } //删除操作 Status DeQueue(SqQueue *Q){ if(Q->front==Q->rear) //判断是否为空队列 return ERROR; Q->front=(Q->front+1)%MAXQSIZE;//将front向后边移动,队列的删除只能从队头 return OK; }//向队列中传入数据 Status PasQueue(SqQueue *Q,int n) { int i; if(n>MAXQSIZE) return ERROR; else { Q->front=Q->rear=0; for(i=0;i<n;i++) { printf("base[%d]=",i); scanf("%d",&Q->base[i]); Q->rear++; } } return OK; }Status SqQueueTrave(SqQueue Q){ if(Q.front==Q.rear) return ERROR; int i; if(Q.front>Q.rear) //若Q.front<Q.rear { for(i=Q.front;i<MAXQSIZE;i++) { if(!Q.base[i]) continue; printf("%4d",Q.base[i]); } for(i=0;i<Q.rear;i++) printf("%4d",Q.base[i]); } else //若Q.front>Q.rear { for(i=Q.front;i<Q.rear;i++) printf("%4d",Q.base[i]); } printf("\n"); }int main(){ int n,e; char c; SqQueue Q; InitQueue(&Q); printf("\n 1.队列的初始化\n 2.插入元素\n 3.删除元素\n 4.退出\n请输入你的选择\n"); while(c!='0') { scanf("%c",&c); switch(c) { case'1': printf("输入首次向队列传入数据的长度:"); scanf("%d",&n); PasQueue(&Q,n); SqQueueTrave(Q); break; case'2': printf("请输入插入的元素:"); scanf("%d",&e); EnQuenu(&Q,e); SqQueueTrave(Q); break; case'3': DeQueue(&Q); SqQueueTrave(Q); break; case'0': exit(0); default: break; } } system("pause");}
- 循环队列的相关操作
- 循环队列的相关操作
- 普通队列,循环队列以及链队列的相关操作
- 静态循环队列的相关操作及详解
- 静态循环队列的相关操作及详解
- 循环队列的相关操作(顺序结构)
- 循环队列的操作
- 循环队列的操作
- 循环队列的操作(循环队列)
- 队列的相关操作
- 队列的相关操作
- 队列的相关操作
- 队列的相关操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- goole学术——参考文献引用
- UVA 10099 Kruskal算法 Floyd算法
- 框架与Window对象 学习笔记(二):将框架集页面作为模块
- C 语言中 #pragma 的使用
- jsf中后台取前台页面组件的值
- 循环队列的相关操作
- java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
- 大数据排名分析
- Luce_ne_Sco_ring_评分机制
- ubuntu下绑定IP地址
- 百度翻译API - PHP实现
- Java 中国移动、中国联通
- HAHA
- java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE7\x9A\x84...' for column 'groupName'