栈——数组描述
栈——进栈、出栈、打印(数组描述)
#include<iostream>
using namespace std;
class Stack
{
public:
Stack(int initialCapacity) //构造函数
{
size=initialCapacity;
stack= new int[size];
top=-1;
}
void push(int element); //进栈
int pop() //出栈 直接返回出栈的元素
{
if(top==-1)
{
cout<<"栈已经为空!"<<endl;
exit(0);
}
return stack[top--];
}
int top; //当前栈顶
int size; //栈的容量
int* stack; //元素数组
};
void Stack::push(int element) //动态增加栈的大小
{
if(top==size-1)
{
size*=2;
int* p=new int[size];
for(int i=0;i<=top;i++)
p[i]=stack[i];
delete[] stack;
stack=p;
}
stack[++top]=element;
}
int main()
{
Stack stack(10); //初始化能装10个元素的栈
for(int i=0;i<18;i++) //超过10个元素进栈,会动态增加栈的大小
stack.push(i);
for( i=0;i<10;i++) //出栈
cout<<stack.pop()<<endl;
return 0;
}