首先创建三个文件,一个测试的main文件,一个队列的实现文件,最后一个队列的头文件
main函数如下:
#include "queque.h"
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout << "Hello World!" << endl;
queque que_test(3);
que_test.push(9);
que_test.push(8);
que_test.push(7);
//que_test.push(6);
cout << "length : " << que_test.length() << endl;
//que_test.pop();
que_test.print();
return 0;
}
队列的头文件
#ifndef QUEQUE_H
#define QUEQUE_H
class queque
{
public:
queque(int maxVolume);
~queque(){
delete []m_iNum;
//m_iNum = NULL;
}
bool is_empty()const; //判断队列是不是为空
bool is_full()const; //判断队列是不是为满
bool pop(); //弹出队头
bool push(int n); //压入队尾
bool clean_queque(); //清空队列
bool print(); //打印队列的值
int length(); //队列里数据的长度
private:
int *m_iNum; // 队列存储数据的位置
int m_iMaxVolume; //队列容量
int m_iHead; //队列头
int m_iEnd; //队列尾
};
#endif // QUEQUE_H
队列的实现函数
#include "queque.h"
#include <iostream>
using namespace std;
queque::queque(int maxVolume)
{
m_iNum = new int(maxVolume);
m_iMaxVolume = maxVolume;
m_iHead = 0;
m_iEnd = 0;
}
bool queque::is_empty()const
{
if(0 == m_iEnd){
return true;
}
return false;
}
bool queque::is_full()const
{
if(m_iEnd == m_iMaxVolume){
return true;
}
return false;
}
bool queque::pop()
{
if(is_empty()){
return false;
}
m_iHead++;
}
bool queque::push(int n)
{
if(is_full())
{
return false;
}
m_iNum[m_iEnd] = n;
m_iEnd++;
}
bool queque::clean_queque()
{
m_iEnd = 0;
m_iHead = 0;
}
bool queque::print()
{
int i = 0;
for(i = m_iHead;i< m_iEnd;i++){
cout << m_iNum[i] <<endl;
}
}
int queque::length()
{
return m_iEnd - m_iHead;
}