顺序栈的实现

目录

顺序栈由以下2个操作:入栈操作和出栈操作,创建2个函数,具体实现在下面:

#include<stdio.h>
#include <malloc.h>
#define TRUE 1
#define FALSE 0
#define Stack_Size 50

typedef struct
{
char elem[Stack_Size];
int top;
}SeqStack;

int Push(SeqStack *S,char x)
{
if(S->top==Stack_Size-1)
   printf("栈已满无法进栈");
   S->top++;
   S->elem[S->top]=x;
   return (TRUE);
}
int Pop(SeqStack *S,char *x)
{
if(S->top==-1)
{
   printf("栈空无法出栈");
   return (FALSE);
}
else
{
   *x=S->elem[S->top];
   S->top--;
   return (TRUE);
}
}
void main()
{
SeqStack *ST;
char c1,*c2;
ST=(SeqStack*)malloc(sizeof(SeqStack));
c2=(char*)malloc(sizeof(SeqStack));
ST->top=-1;
printf("请输入字符:\n");
while((c1=getchar())!='\n')
{
   Push(ST,c1);
}
printf("输出出栈字符为:\n");
do
{
   Pop(ST,c2);
   putchar(*c2);
}
while(ST->top!=-1);

printf("\n");
}