#include<iostream>
using namespace std;
//栈的顺序存储结构--顺序栈
//栈是一种特殊的线性表
const int maxsize=100;
class s_stack{//Sequential stack 顺序栈
public:
s_stack(const int a[],int temp_num);//整表创建
void del_stack();//整表删除
void show_top();//输出栈顶数据
void add_elem(int i);//插入数据
void del_elem();//删除数据
int show_length();//返回栈的大小
int data[maxsize];
int top;
};
s_stack::s_stack(const int a[],int temp_num){
top=temp_num-1;
if(top==-1){
cout<<"创建一个空表"<<endl;
return;
}
for(int i1=0;i1<temp_num;i1++){
data[i1]=a[i1];
}
cout<<"创建成功"<<endl;
}
void s_stack::show_top(){
if(top==-1){
cout<<"此表为空栈"<<endl;
return;
}
cout<<"top="<<top<<endl;
cout<<"栈顶数据为"<<data[top]<<endl;
}
void s_stack::add_elem(int i){
if(top+1==maxsize){
cout<<"此栈已经满了"<<endl;
return;
}
top++;
data[top]=i;
}
void s_stack::del_elem(){
if(top==-1){
cout<<"此栈为空栈"<<endl;
return;
}
cout<<"top="<<top<<endl;
top--;
cout<<"top="<<top<<endl;
}
void s_stack::del_stack(){
if(top==-1){
cout<<"此栈已经是一个空栈了"<<endl;
return;
}
top=-1;
cout<<"删除完成"<<endl;
}
int s_stack::show_length(){
return ++top;
}
int main(){
int arr[maxsize],num;
cout<<"输入栈的大小"<<endl;
cin>>num;
for(int i=0;i<num;i++){
int num1;
cout<<"输入第"<<i<<"个元素的值:";
cin>>num1;
arr[i]=num1;
}
s_stack ss(arr,num);
//ss.add_elem(6);
// ss.show_top();
//ss.del_elem();
//ss.del_stack();
//ss.show_top();
ss.show_length();
return 0;
}