栈学习一

#include<cstdio>
#include <iostream>
#define Maxsize 50
using namespace std;
typedef struct
{
    int Data[Maxsize];
int top;
}Sqstack;
void Initstack(Sqstack& S)//初始化,初始化的值不一样,进栈操作与出栈操作会稍微有所不同;
{
    S.top = -1;
}
bool Stackempty(Sqstack S)//判断空栈
{
    if (S.top == -1) return true;
    else return false;
}
bool Push(Sqstack& S, int& elem)//压栈
{
    if (S.top == Maxsize - 1) return false;
    S.Data[++S.top] = elem;
    return true;
}
bool Pop(Sqstack& S,int &elem)//弹栈
{
    if (S.top == -1) return false;
    elem = S.Data[S.top--];
    return true;
}
bool GetTopElem(Sqstack S, int& elem)//读栈顶元素
{
    if (S.top == -1) return false;
    elem = S.Data[S.top];
    return true;
}
int main() 
{
    Sqstack S;
    int Elem=0;
    Initstack(S);
    for (int i = 0; ; i++)
    {
        cin >> Elem;
        if (Elem == 000 ||!Push(S, Elem)) break;
    }
    for (int i = 0;; i++)
    {
        if (!Pop(S, Elem)) break;
        cout << Elem << endl;
    }
}


 

 

posted @ 2021-07-30 09:35  Mexcellent  阅读(27)  评论(0)    收藏  举报