写作不易,如可请点赞
使用结构体写
外加作者英语不好用拼音代替(多多包涵)
#include<iostream>
using namespace std;
//结构体
typedef struct zai{
int data;
zai*next;
}zai,*Zai;
void csh(Zai &top);//初始化
void chakong(Zai &top);//检查栈是否为空
void qingkong(Zai &top);//清空栈
void ruzai(Zai &top,int x);//入栈
int tzai(Zai &top);//退栈
int quzai(Zai &top);//取栈顶元素
int main(){
int a,x;
Zai top;//栈顶指针
for(;;){
cout<<"1,初始化栈 2,检查栈是否为空"<<"\n";
cout<<"3,清空栈 4,入栈"<<"\n";
cout<<"5,退栈 6,取栈顶元素"<<"\n";
cout<<"请输入一个数来选择功能"<<"\n";
cin>>a;
if(a==1)csh(top);
if(a==2)chakong(top);
if(a==3)qingkong(top);
if(a==4){
cout<<"请输入要入栈的数"<<"\n";
cin>>x;
ruzai(top,x);
}
if(a==5)cout<<"退栈的数为"<<tzai(top)<<"\n";
if(a==6)cout<<"取出的数为"<<quzai(top)<<"\n";
}
}
void csh(Zai &top){
top=new zai;
top=NULL;
cout<<"初始化成功"<<"\n";
}
void chakong(Zai &top){
if(top!=NULL){
cout<<"不为空"<<"\n";
}else{
cout<<"为空"<<"\n";
}
}
void qingkong(Zai &top){
Zai p;
while(top->next!=NULL){
p=top;
top=top->next;
delete p;
}
}
void ruzai(Zai &top,int x){
Zai p;
p=new zai;
p->data=x;
p->next=top;
top=p;
cout<<"入栈成功"<<"\n";
}
int tzai(Zai &top){
Zai p;
int datashu;
if(top->next==NULL){
return top->data;
}else{
p=top;
top=top->next;
datashu=p->data;
delete p;
return datashu;
}
}
int quzai(Zai &top){
return top->data;
}