关于顺序队列的基本操作(c++)

写作不易,如可请点赞

打赏就是作者发布最作业的动力
使用结构体

英语不好用的是拼音

#include<iostream>
using namespace std;
typedef struct xuhuandl{
	int *data;
	int maxSize;
	int front,rear;
}xuhuandl,*Xuhuandl;

void chushua(Xuhuandl &dl,int daxiao);//初始化队列
int pankong(Xuhuandl &dl);//检查队列是否为空
void qingkongdl(Xuhuandl &dl);//清空队列
void rudl(Xuhuandl &dl,int shu);//入队
int panduanyid(Xuhuandl &dl);//判断溢出 
void chudl(Xuhuandl &dl);//出队
void qudshoyshu(Xuhuandl &dl);//取队首元素



int main(){
	int xz;
	int shu;
	Xuhuandl dl=new xuhuandl;
	int daxiao;
	for(int i=0;i<100;){
		cout<<"1,初始化队列    2,检查队列是否为空"<<"\n";
		cout<<"3,清空队列      4,入队"<<"\n";
		cout<<"5,出队          6,取队首元素"<<"\n";
		cin>>xz;
		if(xz==1){
			cout<<"请输入要生成的大小"<<"\n";
			cin>>daxiao;
			chushua(dl,daxiao); 
		}
		if(xz==2){
			pankong(dl);
		}
		if(xz==3){
			qingkongdl(dl);
		}
		if(xz==4){
			cout<<"请输入要入队的数"<<"\n";
			cin>>shu;
			rudl(dl,shu);
		}
		if(xz==5){
			chudl(dl);
		}
		if(xz==6){
		qudshoyshu(dl);
		}
		}
}

int panduanyid(Xuhuandl &dl){
	if((dl->front+1)%dl->maxSize==dl->rear%dl->maxSize){
	cout<<"队列已满队列"<<"\n"<<"入队失败"<<"\n"; 
	return 1;
	}	
	return 0;
}

void chushua(Xuhuandl &dl,int daxiao){
	dl->maxSize=daxiao;
	dl->front=0;
	dl->rear=0;
	dl->data=new int[dl->maxSize];
	cout<<"初始化完成"<<"\n";
}


int pankong(Xuhuandl &dl){
	if(dl->rear==dl->front){
		cout<<"此时为空"<<"\n";
		return 1;
	}else{
		cout<<"此时为不空"<<"\n";
		return 0;
	}
}

void qingkongdl(Xuhuandl &dl){
	dl->rear=dl->front;
	cout<<"已清空"<<"\n";
}

void rudl(Xuhuandl &dl,int shu){
	if(panduanyid(dl))return;
	dl->data[dl->front]=shu;
	dl->front++;
	
}

void chudl(Xuhuandl &dl){
	if(pankong(dl)){
		cout<<"无法出队"<<"\n"; 
	}else{
		cout<<"出队的数为"<<dl->data[dl->rear]<<"\n";
		dl->rear++;
	}
}

void qudshoyshu(Xuhuandl &dl){
		if(pankong(dl)){
		cout<<"无法取队首元素"<<"\n"; 
	}else{
		cout<<"取队首元素为"<<dl->data[dl->rear]<<"\n";
	}
}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值