⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.c

📁 Linux下模拟并发程序的执行实例
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#include "const.h"
#include "queue.h"

Queue *InitQueue()
{
	Queue *Q = (Queue *)malloc(sizeof(Queue));
	Q->front = Q->rear = 0;
	return Q;
}

int EnQueue(Queue *Q, ElemType x)
{
	if ((Q->rear + 1)%MAXSIZE == Q->front)
	{
		return FALSE;
	}
	else {
		Q->q[Q->rear] = x;
		Q->rear = (Q->rear + 1)%MAXSIZE;
		return TRUE;
	}
}

int DeQueue(Queue *Q, ElemType *x)
{
	if (Q->rear == Q->front)
	{
		return FALSE;
	}
	else {
		*x = Q->q[Q->front];
		Q->front = (Q->front + 1)%MAXSIZE;
		return TRUE;
	}
}

int QueueEmpty(Queue Q)
{
	if (Q.rear == Q.front)
	{
		return TRUE;
	}
	else {
		return FALSE;
	}
}

int QueueFull(Queue Q)
{
	if ((Q.rear + 1)%MAXSIZE == Q.front)
	{
		return TRUE;
	}
	else {
		return FALSE;
	}
}

/**这个临时队列,把原队列放到里面,当取完最后一
	个元素后,就把这个队列中的元素放回原来的队列
Elemtype Last(Queue *Q)
{
	Elemtype *prElem = NULL;
	Queue *prTempQueue;
	prTempQueue = InitQueue();
	while(QueueEmpty(*Q)==1)
	{
		DeQueue(Q,prElem);
		EnQueue(prTempQueue,*prElem);
	}
	while(QueueEmpty(*prTempQueue)==1)
	{
		DeQueue(prTempQueue,prElem);
		EnQueue(Q,*prElem);
	}
	return *prElem;
}
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -