c语言中queue有什么作用,C语言使用数组实现简单队列

C语言使用数组实现简单队列

/*

* queue.h

*

*  Created on: Nov 6, 2010

*      Author: jenson

*/

#ifndef QUEUE_H_

#define QUEUE_H_

typedef struct _queue_ * queue;

typedef int item_type;

struct _queue_{

item_type * item;

int head;

int tail;

int size;

};

extern queue queue_init(int);

extern int queue_empty(queue);

extern void queue_enqueue(queue,item_type);

extern item_type queue_get(queue);

#endif /* QUEUE_H_ */

/*

* queue.c

*

*  Created on: Nov 6, 2010

*      Author: jenson

*/

#include "queue.h"

#include

queue queue_init(int max) {

queue q = malloc(sizeof(struct _queue_));

if (q != NULL) {

q->item = malloc(sizeof(item_type) * (max+1));

q->size = sizeof(item_type) * max;

q->head = max;

q->tail = 0;

return q;

}

perror("queue_init.\n");

return NULL;

}

int queue_empty(queue q) {

return (q->head % (q->size / (sizeof(item_type))) == q->tail);

}

void queue_enqueue(queue q, item_type e) {

q->item[q->tail++] = e;

q->tail = (q->tail) % (q->size / (sizeof(item_type)));

}

item_type queue_get(queue q) {

q->head = q->head % (q->size / (sizeof(item_type)));

return q->item[q->head++];

}

/*

* main.c

*

*  Created on: Nov 6, 2010

*      Author: jenson

*/

#include

#include

#include "queue.h"

int main(){

queue q = queue_init(10);

int i =0;

for(i=1;i<=10;i++){

queue_enqueue(q,i);

}

for(i=1;i<=10;i++){

printf("%d\t",queue_get(q));

}

free(q);

return 0;

}

©著作权归作者所有:来自51CTO博客作者juxiangwu的原创作品,如需转载,请注明出处,否则将追究法律责任

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值