头文件:
#ifndef HEADER_H
#define HEADER_H
class Queue
{
private:
int *seQueue;
int front;
int tail;
public:
int len;
//初始化函数
void seq_init(int size);
//判空函数
int empty(); //(空返回1,非空返回0)
//判满函数
int full(); //满返回1,非满返回0
//入队函数
int seq_push(int num);
//出队函数
int seq_pop();
//遍历函数
int seq_show();
//求队列长度函数
int seq_len();
//销毁函数
int seq_destroy();
};
#endif // HEADER_H
源文件:
#include <iostream>
#include <header.h>
using namespace std;
//初始化函数
void Queue::seq_init(int size)
{
len = size;
seQueue = new int[size];
front = 0;
tail = 0;
cout<<"初始化成功"<<endl;
}
//判空函数
int Queue::empty() //
{
return front == tail;
}
//判满函数
int Queue::full()
{
return (tail+1)%len == front;
}
//入队函数
int Queue::seq_push(int num)
{
if(full())
{
cout<<"入队失败"<<endl;
return 0;
}
seQueue[tail] = num;
tail = (tail+1)%len;
cout<<"入对成功"<<endl;
return 1;
}
//出队函数
int Queue::seq_pop()
{
if(empty())
{
cout<<"出队失败"<<endl;
return 0;
}
front = (front+1)%len;
cout<<"出队成功"<<endl;
return 1;
}
//遍历函数
int Queue::seq_show()
{
if(empty())
{
cout<<"遍历失败"<<endl;
return 0;
}
for(int i=front;i!=tail;i=(i+1)%len)
{
cout<<seQueue[i]<<" ";
}
cout<<endl;
cout<<"遍历成功"<<endl;
return 1;
}
//求队列长度函数
int Queue::seq_len()
{
return (tail+len-front)%len;
}
//销毁队列
int Queue::seq_destroy()
{
delete []seQueue;
seQueue = nullptr;
front = 0;
tail = 0;
cout<<"销毁成功"<<endl;
return 1;
}
主函数:
#include <iostream>
#include <header.h>
using namespace std;
int main()
{
Queue q1;
//初始化
q1.seq_init(5);
//遍历
q1.seq_show();
//出队
q1.seq_pop();
//入队
q1.seq_push(5);
q1.seq_push(6);
q1.seq_push(7);
q1.seq_push(8);
q1.seq_push(9);
//遍历
q1.seq_show();
//出队
q1.seq_pop();
q1.seq_pop();
//遍历
q1.seq_show();
//求队列长度
cout<<"队列长度:"<<q1.seq_len()<<endl;
//销毁队列
q1.seq_destroy();
//遍历
q1.seq_show();
return 0;
}
程序执行结果: