顺序队列之C++实现
下面介绍下用C++实现的顺序队列,在VC6下调试通过。
1、文件组织形式

2、sq.h顺序队列类的说明
#ifndef _SQ_H_#define _SQ_H_typedef int dataType;#define maxSize 100class 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;}