//#############################################################
//#Name: 栈功能 #
//#Copyright: (hlb20130715) #
//#Author: 贺礼博 #
//#Date: 2024/12/9 21:00 #
//#Description: 若要转载,请说明出处 #
//#############################################################
#include<bits/stdc++.h>
#include<ctime>
#include<cstdlib>
#include<unistd.h>
#include<windows.h>
using namespace std;
stack<int> s;
int main() {
cout<<"********栈功能********\n";
cout<<"功能1.压入元素\n";
cout<<"功能2.取出栈顶元素\n";
cout<<"功能3.删除栈顶元素\n";
cout<<"功能4.计算栈中元素个数\n";
cout<<"功能5.清空栈\n";
cout<<"功能6.退出\n";
int sr;
cin>>sr;
while(sr<6) {
if(sr==1) {
cout<<"单个压入(1)or多个压入(2)\n";
int st;
cin>>st;
if(st==1) {
cout<<"请输入压入元素\n";
int x;
cin>>x;
s.push(x);
cout<<"压入完毕\n";
} else {
cout<<"请输入压入元素个数\n";
int n;
cin>>n;
cout<<"请依次输入各个元素\n";
for(int i=1; i<=n; i++) {
cout<<"请输入第"<<i<<"个元素:";
int x;
cin>>x;
s.push(x);
}
cout<<"压入完毕\n";
}
} else if(sr==2) {
cout<<"栈顶元素为:"<<s.top();
} else if(sr==3) {
s.pop();
cout<<"已经删除栈顶元素\n";
} else if(sr==4) {
cout<<"栈中有"<<s.size()<<"个元素\n";
} else if(sr==5) {
while(!s.empty()){
s.pop();
}
cout<<"已经清空\n";
}
Sleep(5000);
system("cls");
cout<<"当前元素:\n";
stack<int> f=s;
while(!f.empty()){
cout<<f.top()<<" ";
f.pop();
}
cout<<"\n********栈功能********\n";
cout<<"功能1.压入元素\n";
cout<<"功能2.取出栈顶元素\n";
cout<<"功能3.删除栈顶元素\n";
cout<<"功能4.计算栈中元素个数\n";
cout<<"功能5.清空栈\n";
cout<<"功能6.退出\n";
cin>>sr;
}
cout<<"下次再见\n";
return 0;
}