#include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;
class Queue
{
public:
Queue()
{
front=rear=num=0;
data=new int [capacity];
}
Queue(int capacity)
{
front=rear=0;
data=new int [capacity];
capacity=this->capacity;
}
~Queue()
{
delete [] data;
}
void addLast(int a)
{
if(isFull()){cout<<"shangyi";}
else {num++;data[front++]=a;}
}
int removeFirst()
{
if(isEmpty()){cout<<"xiayi";}
else {num--;return data[--front];}
}
bool isFull()
{
return num==capacity;
}
bool isEmpty()
{
return num==0;
}
protected:
int *data;
int front,rear,capacity;
private:
int num;
};
class DuQueue:public Queue
{
public:
DuQueue()
{
front=rear=num1=0;
data=new int [capacity];
}
DuQueue(int capacity):Queue(capacity)
{
front=rear=0;
data=new int [capacity];
capacity=this->capacity;
}
~DuQueue()
{
delete [] data;
}
void addFirst(int a)
{
if(isFull1()){cout<<"shangyi1";}
else front=(front+1)%capacity;num1++;
data[front]=a;
}
int removeLast()
{
if(isEmpty1()){cout<<"xiayi1";}
else rear=(rear+1)%capacity;num1--;
return data[rear];
}
bool isFull1()
{
return num1==capacity;
}
bool isEmpty1()
{
return num1==0;
}
private:
int num1;
int capacity;
};
int main()
{
DuQueue p(10);
int a,b;
p.addLast(2);
a=p.removeFirst();
p.addFirst(1);
b=p.removeLast();
cout<<a;
cout<<b;
}
#include<string.h>
#include<stdlib.h>
using namespace std;
class Queue
{
public:
Queue()
{
front=rear=num=0;
data=new int [capacity];
}
Queue(int capacity)
{
front=rear=0;
data=new int [capacity];
capacity=this->capacity;
}
~Queue()
{
delete [] data;
}
void addLast(int a)
{
if(isFull()){cout<<"shangyi";}
else {num++;data[front++]=a;}
}
int removeFirst()
{
if(isEmpty()){cout<<"xiayi";}
else {num--;return data[--front];}
}
bool isFull()
{
return num==capacity;
}
bool isEmpty()
{
return num==0;
}
protected:
int *data;
int front,rear,capacity;
private:
int num;
};
class DuQueue:public Queue
{
public:
DuQueue()
{
front=rear=num1=0;
data=new int [capacity];
}
DuQueue(int capacity):Queue(capacity)
{
front=rear=0;
data=new int [capacity];
capacity=this->capacity;
}
~DuQueue()
{
delete [] data;
}
void addFirst(int a)
{
if(isFull1()){cout<<"shangyi1";}
else front=(front+1)%capacity;num1++;
data[front]=a;
}
int removeLast()
{
if(isEmpty1()){cout<<"xiayi1";}
else rear=(rear+1)%capacity;num1--;
return data[rear];
}
bool isFull1()
{
return num1==capacity;
}
bool isEmpty1()
{
return num1==0;
}
private:
int num1;
int capacity;
};
int main()
{
DuQueue p(10);
int a,b;
p.addLast(2);
a=p.removeFirst();
p.addFirst(1);
b=p.removeLast();
cout<<a;
cout<<b;
}