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

📄 cirqueue.cpp

📁 设计模式:工厂模式、单例模式的基本实现
💻 CPP
字号:
/************************************
* Copyright (c) 2008,LDCI
*
* 文件名称: CirQueue.cpp
* 摘要:
*		使用 C 语言实现对顺序存储结构的队列
* 时间:
*		2008-5-4
* 作者:
*		左建华
*
************************************/
#include <stdlib.h>
#include <stdio.h>

#define QUEUESIZE 100
typedef char DataType;
typedef struct
{
	int nFront;
	int nRear;
	int nCount;
	DataType data[QUEUESIZE];
}CirQueue;

void Error(char* _pchMessage);

void InitQueue(CirQueue *_pQueue)
{
	//将顺序栈置空
	for(int i=0; i<QUEUESIZE; i++)
	{
		_pQueue->data[i] = 0;
	}
	
	_pQueue->nFront = 0;
	_pQueue->nRear = 0;
	_pQueue->nCount = 0;
}

int QueueEmpty(CirQueue *_pQueue)
{
	return _pQueue->nCount == 0;
}

int QueueFull(CirQueue *_pQueue)
{
	return _pQueue->nCount == QUEUESIZE;
}

void EnQueue(CirQueue *_pQueue, DataType _x)
{
	if( QueueFull(_pQueue) )
	{
		Error("Queue overflow.");
		return;
	}
	
	_pQueue->nCount++;
	_pQueue->data[_pQueue->nRear] = _x;
	_pQueue->nRear = (_pQueue->nRear+1)%QUEUESIZE;
}

DataType DeQueue(CirQueue *_pQueue)
{
	if( QueueEmpty(_pQueue) )
	{
		Error("Queue underflow.");
		return -1;
	}
	
	DataType temp;

	temp = _pQueue->data[_pQueue->nFront];
	_pQueue->nCount--;
	_pQueue->nFront = (_pQueue->nFront+1)%QUEUESIZE;

	return temp;
}

DataType QueuenFront(CirQueue *_pQueue)
{
	if( QueueEmpty(_pQueue) )
	{
		Error("Queue underflow.");
		return -1;
	}
	
	return _pQueue->data[_pQueue->nFront];
}

void Error(char* _pchMessage)
{
	fprintf(stderr, "Error: %s\n", _pchMessage);
}


int main(int agrc, char** argv)
{


	return 0;
}

⌨️ 快捷键说明

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