手动实现队列
#include <iostream>
using namespace std;
class queue
{
private:
int *data;
int front=0;
int tail=-1;
public:
queue(){}
~queue(){delete (data); }
//queue(int * ptr,int f,int t):data(ptr),front(f),tail(t){}
queue& operator=(int n)
{
this->tail++;
for(int i=tail;i>0;i--)
{
data[i] = data[i-1];
}
this->data[front] = n;
return *this;
}
bool empty()
{
return tail==-1;
}
void front_show()
{
if(empty())
{
return;
}
cout<<data[front]<<endl;
}
void back_show()
{
if(empty())
{
return;
}
cout<<data[tail]<<endl;
}
int size()
{
return tail+1;
}
void push(int n)
{
tail++;
data[tail]=n;
}
void pop()
{
if(empty())
{
return;
}
for(int i=tail;i>0;i--)
{
data[i-1]=data[i];
}
data[tail]=0;
tail--;
}
void swap(queue &other)
{
std::swap(data, other.data);
std::swap(front, other.front);
std::swap(tail, other.tail);
}
void show() const {
for (int i = front; i <= tail; ++i) {
cout << data[i] << " ";
}
cout << endl;
}
};
int main()
{
queue s1;
s1=(6);
s1=(5);
s1=(4);
s1=(3);
s1=(2);
s1=(1);
s1.show();
cout<<s1.size()<<endl;
return 0;
}