1.源代码如下
# include <stdio.h>
# define MAX_SIZE 10
int queue[MAX_SIZE];
int rear = -1;
int front = -1;
int InQueue(int value)
{
if(rear >= MAX_SIZE)
return 0;
rear++;
queue[rear] = value;
return 1;
}
//以下是循环队列的实现
/*
int InQueue(int value)
{
if(front == -1 && rear == MAX_SIZE - 1 || rear + 1 == front)
return 0;
rear++;
if(rear == MAX_SIZE)
rear = 0;
queue[rear] = value;
return 1;
}
*/
int OutQueue(int * value)
{
if(front == rear)
return 0;
front++;
* value = queue[front];
return 1;
}
//以下是循环队列的实现
/*
int OutQueue(int * value)
{
if(rear == front)
return 0;
front ++;
if(front == MAX_SIZE)
front = 0;
* value = queue[front];
return 1;
}
*/
void main()
{
int temp;
while(1)
{
printf("1.Store 2.Read -->");
scanf("%d", &temp);
fflush(stdin);
if(temp == 1)
{
printf("Please input the value:");
scanf("%d", &temp);
fflush(stdin);
if(InQueue(temp) == 1)
printf("Insert success\n");
else
printf("The queue is full\n");
}
else if(temp == 2)
{
if(OutQueue(&temp))
{
printf("The out queue value is %d\n",temp);
}
else
printf("The queue is empty\n");
}
else
break;
}
}