简单队列和循环队列的实现--数组实现
2011-12-05 21:28
531 查看
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;
}
}
# 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;
}
}
相关文章推荐
- c语言用简单数组实现循环队列
- 数据结构学习之路(四)用数组简单实现循环队列
- 简单循环队列模版(数组实现)
- 队列--基于简单循环数组实现(Java)
- 简单的双线程数组循环队列缓冲区的实现
- 数组实现的简单循环队列
- 深入理解循环队列----循环数组实现ArrayDeque
- 笔记七:基于数组的循环队列的实现
- 队列----循环数组实现队列
- 使用数组实现的简单队列结构
- 【C++数据结构】数组循环队列的实现
- Java数组实现循环队列、Java链表实现队列
- Data Structure-2 Queue 循环队列,用数组实现
- 简单数据结构的实现之循环队列
- 数据结构之——基于数组实现的循环队列
- 数组实现循环队列(一)
- 8.用定长数组 实现 循环队列
- [Algorithms]简单的栈与队列数组实现
- 循环队列的数组实现!!
- 20162314 王译潇 课上用链表和数组实现循环队列