栈(顺序实现)
方法1:top初始化为-1,指向栈顶元素的位置,top其实就是cursor,类似静态链表里面的所谓的next指针
#include <stdio.h>
using namespace std;
typedef int ElemType;
#define maxSize 50
typedef struct{
ElemType data[maxSize]; //stack elem
int top; //stack top point-------cursor
}SeqStack;
//init stack
void initStack(SeqStack &S){
S.top = -1;
}
//add stack elem if success -----true, versa
bool push(SeqStack &S, ElemType e){
if(S.top == maxSize - 1){
return false;
}
S.data[++S.top] = e;
return true;
}
//pop stack top elem, idem push info
bool pop(SeqStack &S, ElemType &e){
if(S.top == -1){
return false;
}
e = S.data[S.top--];
return true;
}
//Get stack top elem dont delete
bool GetElem(SeqStack S, ElemType &e){
if(S.top == -1){
return false;
}
e = S.data[S.top];
return true;
}
//judge stack empty or not
bool emptyStack(SeqStack S){
if(S.top == -1){
return true;
}
return false;
}
//delete stack all elem
bool destoryStack(SeqStack &S){
S.top = -1;
}
int main(){
return 0;
}