栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

队列(个人笔记)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

队列(个人笔记)

队列的创建,增加,删除,判断空满

#include 
#include 
#define ERROR -1
#define N 100
using namespace std;

struct Queue{
	int *data;
	int front,rear;
	int MaxSize;
};

struct BinTree{
	int data;
	struct BinTree *left;
	struct BinTree *right;
};

struct Queue *CreateQueue(int Maxsize)
{
	struct Queue *Q = (struct Queue *)malloc(sizeof(struct Queue));
	Q->data = (int *)malloc(sizeof(int));
	Q->front = Q->rear = 0;
	Q->MaxSize = Maxsize;
	return Q;
}

bool Isfull(struct Queue *Q)
{
	return ((Q->rear+1) % Q->MaxSize == Q->front);
}

bool AddQ(struct Queue *Q,int x)
{
	if(Isfull(Q))
	{
		cout << "队列已满" << endl;
		return false;
	}
	else
	{
		Q->rear = (Q->rear+1) % Q->MaxSize;
		Q->data[Q->rear] = x;
		return true;
	}
}

bool IsEmpty(struct Queue *Q)
{
	return (Q->front == Q->rear);
}

int DeleteQ(struct Queue *Q)
{
	if(IsEmpty(Q))
	{
		cout << "队列为空" << endl;
		return ERROR;
	}
	else
	{
		Q->front = (Q->front+1) % Q->MaxSize;
		return Q->data[Q->front];
	}
}

int main()
{
	int n,x;
	struct Queue *Q = CreateQueue(N);
	cout << "请输入数据个数";
	cin >> n;
	while(n--)
	{
		cin >> x;
		AddQ(Q,x);
	}
	//cout << Q->front << " " << Q->rear << endl;
	for(int i = Q->front;i != Q->rear+1;i = (i+1)%Q->MaxSize)
	{
		cout << Q->data[i] << " ";
	}
	
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/886468.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号