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

📄 queue.h

📁 本程序是关于基数排列的程序
💻 H
字号:
#ifndef QUEUE_H
#define QUEUE_H

#include<stdio.h>
#include<stdlib.h>
#define MaxQueueSize 100
struct Queue
{
	Type data[MaxQueueSize];
	int size;						//记录数据元素个数
	int front,rear;					//头指针和尾指针
};

void SetQueue(Queue *q);			//构造函数,赋初值。size,front和rear都赋值0	
int QSize(const Queue *q);			//求数据元素个数
int QEmpty(const Queue *q);			//判空
int QFull(const Queue *q);			//判满
Type QFront(const Queue *q);		//取队头元素
void QPush(Queue *q,Type item);		//入队。插入队尾
Type QPop(Queue *q);				//出队。删除队头元素
void QClear(Queue *q);				//清队
void QError(const char *c);			//错误信息处理(Error handling method)

void SetQueue(Queue *q)		//构造,赋初值
{
	q->size=0;	q->front=0;	q->rear=0;
}
int QSize(const Queue *q)	//求数据元素个数
{
	return(q->size);
}
int QEmpty(const Queue *q)	//判空
{
	return(q->size==0);
}
int QFull(const Queue *q)	//判满
{
	return(q->size==MaxQueueSize);
}
Type QFront(const Queue *q)	//取队头元素
{
	if(q->size==0)
		QError("QGetData:Queue is Empty!");
	return(q->data[q->front]);
}
void QPush(Queue *q,Type item)//插入队尾
{
	if(q->size==MaxQueueSize)
		QError("QInsert:Queue is full!");
	q->data[q->rear]=item;
	q->rear=(q->rear+1)%MaxQueueSize;
	q->size++;
}
Type QPop(Queue *q)//删除队头元素
{
	Type item;
	if(q->size==0)
		QError("QDelete:Queue is Empty!");
	item=q->data[q->front];
	q->front=(q->front+1)%MaxQueueSize;
	q->size--;
	return(item);
}
void QClear(Queue *q)//清队
{
	q->size=0;	q->front=0;	q->rear=0;
}
void QError(const char *c)//错误信息处理
{
	printf("%s",c);	exit(1);
}

#endif

⌨️ 快捷键说明

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