`
#include<stdio.h>
#include<malloc.h>
#define MaxSize 50
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
int top;
}SqStack;
(1)栈空的条件:s->top==-1。
(2)栈满的条件:s->top==MaxSize-1(data数组的最大下标)
(3)元素e的进栈操作:s->top++;
s->data[s->top]=e;
(4)出栈的操作:e=s->data[s->top];
s->top- -;
1.初始化栈
void InitStack(SqStack &s)
{
s = (SqStack)malloc(sizeof(SqStack));
s->top = -1;
}
2.销毁栈
void DestroyStack(SqStack *s)
{
free(s);
}
3.判断栈是否为空
bool StackEmpty(SqStack *s)
{
return s->top = -1;
}
4.进栈
bool Push(SqStack*&s, ElemType e)
{
if (s->top == MaxSize - 1)
return false;
s->top++;
s->data[s->top] = e;
return true;
}
5.出栈
bool Pop(SqStack *&s, ElemType e)
{
if (s->top == -1)
return false;
e = s->data[s->top];
s->top- -;
return true;
}
6.取栈顶
bool GetTop(SqStack *s, ElemType &e)
{
if (s->top == -1)
return false;
e = s->data[s->top];
return true;
}
有错请指正!