C语言实现队列
2010-10-29 22:22
281 查看
/*
* main.c
* 队列
* Created on: Oct 29, 2010
* Author: jenson
*/
#include <stdlib.h>
#include <stdio.h>
#define MAX 10
void init(int * front, int *rear);
int empty(int *front, int *rear);
int en_queue(int q[], int x, int * front, int * rear);
int de_queue(int q[], int *y, int *front, int *rear);
int main() {
int q[MAX];
int f = 0,r = 0;
int i,x,m,n,a;
init(&f,&r);
printf("要输入队列的个数:\n");
scanf("%d",&m);
for(i = 0;i<m;i++){
i = i;
scanf("%d",&x);
a = en_queue(q,x,&f,&r);
if(a == -1){
break;
}
}
printf("要从队列提取元素个数:\n");
scanf("%d",&n);
for(i = 0;i<n;i++){
if(de_queue(q,&x,&f,&r)==-1){
break;
}
printf("%d\n",x);
}
if(empty(&f,&r) == 1){
printf("队列为空\n");
}else{
printf("队列中还有%d个元素.",(m-n));
}
return 0;
}
void init(int * front, int *rear) {
*front = 0;
*rear = 0;
}
int empty(int *front, int *rear) {
if (*front == *rear) {
return 1;
} else {
return 0;
}
}
int en_queue(int q[], int x, int * front, int * rear) {
*rear = (*rear + 1) % MAX;
if (*front == *rear) {
perror("队列发生上溢\n");
return -1;
} else {
q[*rear] = x;
return 0;
}
}
int de_queue(int q[], int *y, int *front, int *rear) {
*front = (*front + 1) / MAX;
if (*front == *rear) {
perror("队列发生下溢\n");
return -1;
} else {
*y = q[*front];
return 0;
}
}
本文出自 “有思想的代码” 博客,请务必保留此出处http://wujuxiang.blog.51cto.com/2250829/412542
* main.c
* 队列
* Created on: Oct 29, 2010
* Author: jenson
*/
#include <stdlib.h>
#include <stdio.h>
#define MAX 10
void init(int * front, int *rear);
int empty(int *front, int *rear);
int en_queue(int q[], int x, int * front, int * rear);
int de_queue(int q[], int *y, int *front, int *rear);
int main() {
int q[MAX];
int f = 0,r = 0;
int i,x,m,n,a;
init(&f,&r);
printf("要输入队列的个数:\n");
scanf("%d",&m);
for(i = 0;i<m;i++){
i = i;
scanf("%d",&x);
a = en_queue(q,x,&f,&r);
if(a == -1){
break;
}
}
printf("要从队列提取元素个数:\n");
scanf("%d",&n);
for(i = 0;i<n;i++){
if(de_queue(q,&x,&f,&r)==-1){
break;
}
printf("%d\n",x);
}
if(empty(&f,&r) == 1){
printf("队列为空\n");
}else{
printf("队列中还有%d个元素.",(m-n));
}
return 0;
}
void init(int * front, int *rear) {
*front = 0;
*rear = 0;
}
int empty(int *front, int *rear) {
if (*front == *rear) {
return 1;
} else {
return 0;
}
}
int en_queue(int q[], int x, int * front, int * rear) {
*rear = (*rear + 1) % MAX;
if (*front == *rear) {
perror("队列发生上溢\n");
return -1;
} else {
q[*rear] = x;
return 0;
}
}
int de_queue(int q[], int *y, int *front, int *rear) {
*front = (*front + 1) / MAX;
if (*front == *rear) {
perror("队列发生下溢\n");
return -1;
} else {
*y = q[*front];
return 0;
}
}
本文出自 “有思想的代码” 博客,请务必保留此出处http://wujuxiang.blog.51cto.com/2250829/412542
相关文章推荐
- C语言实现,队列可伸缩
- 环形队列 - c语言实现
- 队列的数组实现(C语言描述)
- C语言实现队列
- 队列 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 数据结构:循环队列(C语言实现)
- 数据结构:循环队列(C语言实现)
- C语言实现链队列代码
- 队列的C语言实现
- 数据结构:循环队列(C语言实现)
- (C语言)队列的链式实现(数据结构十一)
- 数据结构 c语言实现链式循环队列(输入数字入队 输入字母出队)
- 寒假算法第一编——C语言实现队列
- C语言斐波那契数列的四种实现方式—递归,迭代,数组,队列
- 队列C语言实现
- 循环队列的综合操作(出入队、获取队长度)C语言实现
- C语言实现的优先级队列
- c语言实现队列结构操作的宏定义
- 链表实现队列 c语言
- c语言数组方式实现静态循环队列