您的位置:首页 > 其它

简单队列和循环队列的实现--数组实现

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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: