栈的顺序存储结构--顺序栈

#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;
}

 

posted @ 2021-01-24 17:11  大耿2844  阅读(95)  评论(0)    收藏  举报