循环队列实验3
来源:互联网 发布:淘宝怎么弄天猫积分 编辑:程序博客网 时间:2024/06/07 02:09
//循环队列(顺序) A 建一个循环队列。B 连续的入队几个元素,出队几个元素 。C 队满,队空。#include<cstdio>#include<cstdlib>#define MAXQSIZE 10#define ok 1#define OVERFLOW -2#define ERROR 0typedef struct{ int * base; int front; int rear; }SqQueue;int initQueue(SqQueue &Q) // 1{ Q.base=(int *)malloc(MAXQSIZE *sizeof(int)); if(!Q.base) exit(OVERFLOW); Q.front=Q.rear=0; return ok; }int QueueLength(SqQueue Q){ return (Q.rear-Q.front+MAXQSIZE)% MAXQSIZE; }int EnQueue(SqQueue &Q,int e) // 3 { if((Q.rear+1)% MAXQSIZE ==Q.front) { printf("\n队已满!\n"); return ERROR; } Q.base[Q.rear]=e; Q.rear=(Q.rear+1)% MAXQSIZE; return ok; }int DeQueue(SqQueue &Q,int &e) // 4{ if(Q.front==Q.rear) { printf("\n队已空!\n"); return ERROR; } e=Q.base[Q.front]; Q.front=(Q.front+1)% MAXQSIZE; return ok; }int QueueTraverse(SqQueue Q){ int i,k;k=QueueLength(Q);for(i=1;i<=k;i++){ printf("%-3d",Q.base[Q.front]); Q.front=(Q.front+1)% MAXQSIZE; }}int main(){ int m,n,e,i; SqQueue Q; initQueue(Q); printf("------------------------------\n"); printf("该循环队列最多可存放%d个元素\n\n",MAXQSIZE-1); printf("请输入数据元素的个数n\n"); scanf("%d",&n); printf("请输入%d个整数:\n",n); for(i=1;i<=n;i++) { scanf("%d",&e); EnQueue(Q,e); } printf("q="); QueueTraverse(Q); printf("\n"); printf("------------------------------\n"); while(1) { printf("1、入队\n"); printf("2、出对\n"); printf("3、退出\n"); printf("请选择你所需要的功能: "); scanf("%d",&m); printf("------------------------------\n"); switch(m) { case 1: { printf("入队的元素是:"); scanf("%d",&e); EnQueue(Q,e); printf("q="); QueueTraverse(Q); printf("\n"); printf("------------------------------\n"); break; } case 2: { DeQueue(Q,e); printf("出队元素是%d\n",e); printf("q="); QueueTraverse(Q); printf("\n"); printf("------------------------------\n"); break; } case 3: return 0; default:return 0; } } while(1); return 0; }
0 0
- 循环队列实验3
- 循环队列实验
- 实验三、循环队列
- 实验三循环队列(c++)
- 实验四:顺序队列(循环队列)和链队列
- 数据结构实验七——循环队列
- 实验3 队列
- c++第一次实验:循环3
- (实验三)《数据结构》第三章 循环队列与链队列验证
- 实验4:栈和队列的基本操作实现及其应用——循环队列
- 实验4:栈和队列的基本操作实现及其应用之《循环队列》
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 括号匹配实验3
- vc++6.0 如何编译成RELEASE版本
- 隐式图,vijos1026,vijos1029
- iOS 自定义多选单选控件
- C语言及程序设计初步例程-27 条件运算符和条件表达式
- 循环队列实验3
- Java的变量、方法、类及接口
- Hive Tips
- C语言及程序设计初步例程-30 算法的基本概念
- Codeforces Round #288 (Div. 2) B. Anton and currency you all know
- HDU 1757 A Simple Math Problem(矩阵快速幂)
- 利用innodb_table_monitor来trace innodb内部信息
- 讲得好有道理
- android编译错误