您的位置:首页 > 产品设计 > UI/UE

ADT 队列 queue

2013-12-24 14:19 337 查看
//用线性表 实现循环队列。。

          

  

#include<iostream>
using namespace std;
#define MAX_SIZE 100
//用线性表实现循环队列
class myqueue
{
private:
int term[MAX_SIZE];
int front,rear;
public :
myqueue();
bool is_empty();
bool is_full();
void push(int a);
int pop();
};

myqueue::myqueue()
{
front=-1;//第一个有元素的下标
rear=0;//最后一个有元素的下表
}

bool myqueue::is_empty()
{
return rear-1==front;
}

bool myqueue::is_full()
{
return (rear-2==front || (rear==0 && front==MAX_SIZE-2));
}

void myqueue::push(int a)
{
if(!is_full())
{
if(front==MAX_SIZE-2) front=0;
else front++;
term[front]=a;
}
else cout<<"failed push ! full queue"<<endl;
}

int myqueue::pop()
{
int q=rear;
if(!is_empty())
{
if(rear==MAX_SIZE-2) rear=0;
else rear++;
}
else cout<<"failed push ! full queue"<<endl;
return term[q];
}

int main()
{
myqueue s;
s.push(1);
s.push(2);
s.push(3);
cout<<s.pop()<<endl;
cout<<s.pop()<<endl;
cout<<s.pop()<<endl;
//cout<<s.pop()<<endl;

}

          

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: