先建stack.h头文件
#pragma once
#define MAXSIZE 50
#define ELEMTYPE int
typedef struct {
int top;
ELEMTYPE data[MAXSIZE];
}Stack;
void InitStack(Stack &S);//初始化
bool Push(Stack &S, ELEMTYPE e);//入栈
bool Pop(Stack &S, ELEMTYPE &e);//出栈
bool GetTop(Stack S, ELEMTYPE &e);//获取栈顶元素
再建stack.cpp文件
#include "stack.h"
void InitStack(Stack & S)
{
S.top = -1;
}
bool Push(Stack & S, ELEMTYPE e)
{
if(S.top== MAXSIZE-1)
return false;
S.top++;
S.data[S.top] = e;
return true;
}
bool Pop(Stack & S, ELEMTYPE & e)
{
if(S.top<0)
return false;
e = S.data[S.top];
S.top--;
return true;
}
bool GetTop(Stack S, ELEMTYPE & e)
{
if(S.top<0)
return false;
e = S.data[S.top];
return true;
}
再写测试代码(Main函数)
#include<iostream>
#include"stack.h"
using namespace std;
int main() {
Stack S;
InitStack(S);
ELEMTYPE E = 99,t;
Push(S,E);
Push(S, 88);
GetTop(S,t);
cout << t<<endl;
Pop(S, t);
cout << t<<endl;
Pop(S, t);
cout << t << endl;
getchar();
}