循环队列

循环队列的实现

#include<iostream>
using namespace std;
#define maxSize 5
#define Ok 0;
#define No 0;

typedef struct{
	int *array;
	int head;
	int tial;
}Queque;

int Init_queque(Queque &q){//初始化队列 
	q.array=(int *)malloc(sizeof(int));
	if(!q.array)
	{
		cout<<"创建队列失败!"<<endl;
		return No;
	}
	q.head=q.tial=0;
	return Ok;
}

int Insert_queque(Queque &q, int para_temp){//添加元素
	if((q.tial+1)%maxSize==q.head) 
	{
		cout<<"队列已满"<<endl;
		return No;
	}
	q.array[q.tial]=para_temp;
	q.tial=(q.tial+1)%maxSize;
	return Ok;	
}

int Delet_queque(Queque &q){//删除元素 
	if(q.head==q.tial)
	{
		cout<<"删除失败!"<<endl;
		return No;
	}
	q.head=(q.head+1)%maxSize;
	return Ok;
}

int get_Lengh(Queque &q)
{
	return (q.tial-q.head+maxSize)%maxSize;
}

void Get_queque_head(Queque &q , int &para_temp){//察看队列头部元素
	 
}

void Get_queque_tial(Queque &q){//察看队列尾部元素 
	
}

void Print_queque(Queque &q){//输出队列元素 
	for(int i=0; i<get_Lengh(q); i++)
	{
		cout<<q.array[(q.head+i)%maxSize]<<"  ";
	}
	cout<<endl;
}
int main()
{
	Queque Q;
	Init_queque(Q);
	Print_queque(Q);
	Insert_queque(Q, 1);
	Insert_queque(Q, 2);
	Insert_queque(Q, 3);
	Insert_queque(Q, 4);
	Print_queque(Q);
	Insert_queque(Q, 5);
	Print_queque(Q);
	Insert_queque(Q, 6);
	Print_queque(Q);
	Delet_queque(Q);
	Print_queque(Q);
	Delet_queque(Q);
	Insert_queque(Q, 10);
	Insert_queque(Q, 11);
	Print_queque(Q);
	return 0;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值