循环队列的实现
#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 ¶_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;
}