C++作業 棧的實現
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int const len=20;
class Mstack
{
private:
int data[len];
int *top;
int *base;
int stacksize=0;
public:
void init()
{
top=&data[0];
base=top;
stacksize=0;
}
void push(int x)
{
*top=x;
top++;
stacksize++;
}
void pop(int &e)
{
e=*top;
top--;
stacksize--;
}
Mstack& operator =(Mstack &m2)
{
m2.init();
for(int i=0;i<stacksize;i++)
{
m2.base[i]=base[i];
}
m2.top=&m2.base[stacksize-1];
}
};
int main()
{
int e;
Mstack m1,m2;
m1.init();
for(int i=1;i<5;i++)
{
m1.push(i);
}
m1=m2;
m2.pop(e);
cout<<e;
getchar();getchar();
return 0;
}