man.
#include <iostream>
#include<feih.h>
using namespace std;
int main()
{
//创建顺序表
que L;
L.date(126);
//入队
L.ent(23);
L.ent(12);
L.ent(45);
L.ent(15);
L.ent(98);
//遍历队列
L.trav();
//出队
L.come();
//遍历队列
L.trav();
//求队列长度
L.len();
//销毁队列
L.dest();
return 0;
}
fei.cpp
#include<feih.h>
using namespace std;
//创建顺序表
void que::date(int n)
{
//创建
maxl=n;
data=new int[maxl];
//初始化
head=0;
taill=0;
}
//判空
bool que::empty()
{
return head==taill;
}
//入队
void que::ent(int n)
{
//判断逻辑
if(data==NULL)
{
cout<<"入队失败"<<endl;
return;
}
//入队逻辑
data[taill%maxl]=n;
taill++;
}
//出队
void que::come()
{
//判断逻辑
if(data==NULL||empty())
{
cout<<"出队失败"<<endl;
return;
}
//出队逻辑
head=(head+1)%maxl;
}
//遍历队列
void que::trav()
{
//判断逻辑
if(data==NULL||empty())
{
cout<<"遍历失败"<<endl;
return;
}
//遍历逻辑
for(int i=head;i<taill;i=(i+1)%maxl)
{
cout<<data[i]<<" ";
}
cout<<endl;
}
//求队列长度
void que::len()
{
//判断逻辑
if(data==NULL||empty())
{
cout<<"求长度失败"<<endl;
return;
}
//求长度逻辑
//遍历逻辑
int len=0;
for(int i=head;i<taill;i=(i+1)%maxl)
{
len++;
}
cout<<len<<endl;
}
//销毁队列
void que::dest()
{
//判断逻辑
if(data==NULL)
{
cout<<"销毁失败"<<endl;
return;
}
delete []data;
}
fei.h
ifndef FEIH_H
#define FEIH_H
class que
{
int *data;
int head;
int taill;
int maxl;
public:
//创建顺序表
void date(int n);
//判空
bool empty();
//入队
void ent(int n);
//出队
void come();
//遍历队列
void trav();
//求队列长度
void len();
//销毁队列
void dest();
};
#endif // FEIH_H