//本程序用于学习数据结构中的顺序栈
//调试环境 C-Free 5.0
#include<stdio.h>
#include<malloc.h>
#define MAXSIZE 100
typedef struct
{
int *base; //栈底指针
int *top; //栈顶指针
int stacksize;
}SqStack;
void InitStack(SqStack*s)
{
s->base = (int *)malloc(MAXSIZE*sizeof(int));//分配内存空间 100*sizeof(int)
if (!s->base)
{
return; //栈空(分配失败)
}
s->top = s->base;
s->stacksize = MAXSIZE;
}
void push(SqStack *s, char x) //元素进栈
{
if (s->top-s->base==s->stacksize) //栈满
{
return;
}
*s->top++ = x;
}
char GetTop(SqStack *s) //取栈栈顶元素
{
if (s->top != s->base)
{
return*(s->top-1);
}
}
char pop(SqStack *s) //元素出栈
{
if (s->top == s->base)
{
return' ';
}
char e;
e = *--s->top;
return e;
}
int Maching()
{
SqStack ss; //声明一个结