2016.09.29 queue.h

#ifndef _QUEUE_H
#define _QUEUE_H
#include<stdbool.h>
/*在此处插入Item的类型定义*/
/*例如:*/
/*测试所用类型typedef int Item;*/
/*或:typedef struct item{...} Item*/
typedef struct item
{
    long arrive;/*一位顾客加入队列的时间*/
    int processtime;/*该顾客需要的咨询时间*/
}Item;

#define MAXQUEUE 10

typedef struct node
{
    Item item;
    struct node *next;

}Node;
typedef struct queue
{
    Node * front;//指向队列首的指针    
    Node * rear;//指向队列尾的指针
    int items;  //队列中项目的个数
}Queue;

/*操作:初始化队列*/
/*操作前:pq指向一个队列*/
/*操作后:该队列被初始化为空队列*/
void InitializeQueue(Queue * pq);

/*操作:检查队列是否已满*/
/*操作前pq指向一个已初始化的队列*/
/*操作后:如果该队列已满,返回true;否则返回false*/
bool QueueIsFull(const Queue *pq);

/*操作:检查队列是否为空*/
/*操作前:pq指向一个已初始化的队列*/
/*操作后:如果该队列为空,返回true;否则返回false*/
bool QueueIsEmpty(const Queue * pq);

/*操作:确定队列中项目的个数*/
/*操作前:pq指向一个已初始化的列表*/
/*操作后:返回队列中项目的个数*/
int QueueItemCount(const  Queue *pq);

/*操作:向队列尾端添加项目*/
/*操作前:pq指向一个已初始化的队列,item是要添加到队列尾端的项目*/
/*操作后:如果队列未满,item添加,返回true;否则不改变队列,返回false;*/
bool EnQueue(Item item, Queue *pq);

/*操作:从队列首端删除项目* /
/*操作前:pq指向一个初始化的队列*/
/*操作后:如果队列非空,队列首端的项目被复制到*pitem,并从队列中删除*/
/*        函数返回true;如果这个操作使队列为空,把队列重置为空队列,如果队列开始为空,则返回true*/
bool DeQueue(Item  * pitem, Queue * pq);

/*操作:清空队列*/
/*操作前:pq指向一个已初始化的队列*/
/*操作后:队列被清空*/
void EmptyTheQueue(Queue * pq);

#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值