#include <iostream>
using namespace std;
class arrStack{
private:
int mSize;
int top;
int * st;
public:
arrStack(int size){
mSize=size;
top = -1;
st=new int [mSize];
}
~arrStack(){delete[]st;}
void clear(){ top = -1; }
void print_arrStack();
bool push(int item);
bool pop(int & item);
};
bool arrStack::pop(int & item){
if(top==-1){
cout<<"此栈为空栈,不能出栈!!!\n";
return false;
}
item=st[top--];
return true;
}
bool arrStack::push(int item){
if(top==mSize){
int * newSt=new int [mSize*2];
for(int i=0;i<=top;i++){
newSt[i]=st[i];
}
delete[]st;
st=newSt;
mSize=mSize*2;
}
st[++top]=item;
return true;
}
void arrStack::print_arrStack(){
int x=top;
cout<<"这个栈为:\n";
for (int i=0;i<=x;i++){
cout<<st[i]<<endl;
}
}
int main(){
arrStack s(2);
s.push(2);
s.push(8);
s.push(9);
s.print_arrStack();
int temp;
s.pop(temp);
cout<<"出栈的元素为:"<<temp<<endl;
s.print_arrStack();
return 0;
}
C++栈操作实现与应用
本文详细介绍了C++中栈的基本实现方式,包括构造、销毁、清空、打印及入栈、出栈操作,并通过实例展示了如何在实际场景中应用栈结构。
2677

被折叠的 条评论
为什么被折叠?



