栈可以用顺序表(数组)也可以用链表来储存内容,本文采用顺序表(数组)来保存内部元素。代码如下:
1 #include <iostream>
2 using namespace std; class MyStack
{
private:
int l;
int count;
int * array; //这里要注意,不要用array[l],成员变量不能用成员变量初始化。
public:
MyStack(int len)
{
l=len;
count=;
array=new int[l];
};
MyStack() //默认构造函数,最大容量为50.
{
l=;
count=;
array=new int[l];
} void push(int n)
{
if(count>l-)
{
cout<<"out of boundary"<<endl;
return ;
}else
{
array[count]=n;
count++;
}
}
void pop()
{
if(count<)
{
cout<<"empty!"<<endl;
}else
{
array[count--]=;
}
} int top()
{
return array[count];
} bool isEmpty()
{
return (count==);
}
int stackSize()
{
return count+;
}
}; int main()
{
MyStack ms();
ms.push();
ms.push();
ms.push();
if(ms.isEmpty())
cout<<"为空"<<endl;
cout<<"不为空"<<endl;
cout<<"长度为:"<<ms.stackSize()<<endl;
ms.pop();
cout<<"出栈后顶部元素为:"<<ms.top()<<endl;
} 运行结果: