c语言用简单数组实现循环队列
2013-08-15 17:15
751 查看
学习数据与结构时在用数组实现循环队列,从书上和网上找了一些例子,但是都打不到理想效果,有用c++的,有用c和结构体的,就是没找到简单用数组实现的完美循环队列,最后经过我反复的思考,整理出了这个例子,当然还是大众的以牺牲一个存储空间来实现的!具体的就不说了,自己理解吧!
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 3
int queue[MaxSize];
int front=0;
int rear=0;
void add_queue(int value)
{
if((rear+1)%MaxSize==front){
printf("The queue is full!\n");
}else{
rear=(rear+1)%MaxSize;
queue[rear]=value;
}
}
int del_queue()
{
int temp;
if(front==rear){
return -1;
}
front=(front+1)%MaxSize;
temp=queue[front];
queue[front]=0;
return temp;
}
void main()
{
int select;
int i,temp;
for(i=0;i<=MaxSize;i++)
queue[i]=0;
printf("(1)Input a data\n");
printf("(2)Output a data\n");
printf("(3)Exit\n");
printf("Please select:");
scanf("%d",&select);
printf("\n");
if(select!=3){
do{
switch(select){
case 1: printf("Please input the input value==>");
scanf("%d",&temp);
add_queue(temp);
printf("The content of queue:\n");
for(i=0;i<=MaxSize;i++){
if(queue[i]!=0)
printf("%d\n",queue[i]);
}break;
case 2: if((temp=del_queue())==-1)
printf("The queue si empty!\n");
else{
printf("The output value is [%d]\n",temp);
printf("The content of queue:\n");
for(i=0;i<=MaxSize;i++){
if(queue[i]!=0)
printf("%d\t",queue[i]);
printf("\n");
}
}break;
}
printf("(1)Input a data\n");
printf("(2)Output a data\n");
printf("(3)Exit\n");
printf("Please select:");
scanf("%d",&select);
printf("\n");
}while(select!=3);
}
}
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 3
int queue[MaxSize];
int front=0;
int rear=0;
void add_queue(int value)
{
if((rear+1)%MaxSize==front){
printf("The queue is full!\n");
}else{
rear=(rear+1)%MaxSize;
queue[rear]=value;
}
}
int del_queue()
{
int temp;
if(front==rear){
return -1;
}
front=(front+1)%MaxSize;
temp=queue[front];
queue[front]=0;
return temp;
}
void main()
{
int select;
int i,temp;
for(i=0;i<=MaxSize;i++)
queue[i]=0;
printf("(1)Input a data\n");
printf("(2)Output a data\n");
printf("(3)Exit\n");
printf("Please select:");
scanf("%d",&select);
printf("\n");
if(select!=3){
do{
switch(select){
case 1: printf("Please input the input value==>");
scanf("%d",&temp);
add_queue(temp);
printf("The content of queue:\n");
for(i=0;i<=MaxSize;i++){
if(queue[i]!=0)
printf("%d\n",queue[i]);
}break;
case 2: if((temp=del_queue())==-1)
printf("The queue si empty!\n");
else{
printf("The output value is [%d]\n",temp);
printf("The content of queue:\n");
for(i=0;i<=MaxSize;i++){
if(queue[i]!=0)
printf("%d\t",queue[i]);
printf("\n");
}
}break;
}
printf("(1)Input a data\n");
printf("(2)Output a data\n");
printf("(3)Exit\n");
printf("Please select:");
scanf("%d",&select);
printf("\n");
}while(select!=3);
}
}
相关文章推荐
- C语言数组实现循环队列
- 队列的C语言实现(循环数组结构)
- CycleQueue--循环队列(c语言简单实现)
- C语言使用数组实现简单队列
- 简单队列和循环队列的实现--数组实现
- 用C语言实现简单循环队列结构
- c语言数组方式实现静态循环队列
- 数组实现的简单循环队列
- 简单循环队列模版(数组实现)
- 队列--基于简单循环数组实现(Java)
- 简单的双线程数组循环队列缓冲区的实现
- 数据结构与算法分析—循环队列的数组实现(C语言)
- 数据结构学习之路(四)用数组简单实现循环队列
- 循环队列中判断队满队空(数组实现的循环队列)
- 数据结构之---C语言实现循环队列
- 基于链表、数组实现队列、循环队列
- 数据结构:循环队列(C语言实现)
- 使用数组实现队列(C语言)
- 循环队列的c语言实现
- 深入理解循环队列----循环数组实现ArrayDeque