资源简介
系统能模拟出银行叫号机的叫号及显示功能,同时显示出顾客到号码和窗口号,为顾客起指示作用。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
sem_t myinsert;
pthread_t thread[4];
int num;
//////////////////////////////////////////
//定义队列结点类型
typedef struct QueueNode
{
int id;
struct QueueNode *link;
} QueueNode;
///定义队列结点的头指针,为指针
typedef struct Queue
{
QueueNode *front;
QueueNode *rear;
}Queue;
//////////////////////////////////////////
//队列初始化
Queue* QueueInit()
{
Queue* q;
QueueNode *P;
q = (Queue*)malloc(sizeof(Queue));//申请头,尾指针结点
P = (QueueNode *)malloc(sizeof(QueueNode));//申请头结点
P->link = NULL;
q->front = q->rear = P;
return q;
}
///////////////////////////////////////
int isQueueEmpty(Queue *q)
{
return(q->front==q->rear);
}
/////////////////////////////////////////
//入队
void QueueAdd(Queue* qint x)
{
QueueNode *p;
p = (QueueNode *)malloc(sizeof(QueueNode));//申请新结点
p->id = x;
p->link = NULL;
q->rear->link = p;
q->rear = p;
} /////////////////////////////////////////
//读取
int QueueGet(Queue* q)
{
int x;
if(!isQueueEmpty(q))
{
x = q->front->link->id;
return x
}
else
return num;
}
/////////////////////////////////////////////
void Queuemyremove(Queue *q)
{
QueueNode *p;
if(!isQueueEmpty(q))
{
p=q->front->link;
q->front->link=p->link;
p->link=NULL;
free(p);
if(q->front->link==NULL)
q->rear=q->front;
}
}
//////////////////////////////
Queue *q;
///////////////////////////////
void mycall(int nint m)
{
print
评论
共有 条评论