下面介绍下用C++实现的顺序队列,在VC6下调试通过。
1、文件组织形式
2、sq.h顺序队列类的说明
#ifndef _SQ_H_
#define _SQ_H_
typedef int dataType;
#define maxSize 100
class sq
{
public:
sq();
//~sq();
void push(dataType var);
void pop();
dataType front();
bool isEmpty();
bool isFull();
private:
dataType queue[maxSize];
int head;
int tail;
};
#endif
3、sq.cpp顺序队列类的定义
#include <iostream>
#include "sq.h"
using namespace std;
sq::sq()
{
head = -1;
tail = -1;
}
void sq::push(dataType var)
{
queue[++tail] = var;
if(tail == 0)
{
head = 0;
}
}
void sq::pop()
{
++head;
}
dataType sq::front()
{
return queue[head];
}
bool sq::isEmpty()
{
bool flag = head > tail; //当head和tail不为-1时
if(head == -1 && tail == -1) //当head=tail=-1时
{
flag = true;
}
if(flag)
{
head = tail = -1;
}
return flag;
}
bool sq::isFull()
{
return tail == maxSize-1;
}
4、main.cpp
#include <iostream>
#include "sq.h"
using namespace std;
int main()
{
sq exp;
int i = 0;
for(i=0;i<maxSize+10;++i)
{
if(!exp.isFull())
{
exp.push(i);
}
}
for(i=0;i<maxSize+20;++i)
{
if(!exp.isEmpty())
{
cout<<exp.front()<<endl;
exp.pop();
}
}
if(exp.isEmpty())
{
cout<<"队列已空!"<<endl;
}
return 0;
}