1.顺序栈
sestack.h
#include "sestack.h"
typedef struct _stack
{
int len;
int top;
char *space;
}Stack;
void initStack (Stack *ps, int len);
int isStackFull (Stack *ps);
int isStackEmpty (Stack *ps);
char pop (Stack *ps);
void push (Stack *ps,char ch);
sestack.c
#include "sestack.h"
#include <stdlib.h>
#include <stdio.h>
void initStack(Stack *ps, int len)
{
ps->space = (char*)malloc(sizeof(char) * len);
ps->top = 0;
ps->len = len;
}
int isStackFull(Stack *ps)
{
// return (!(ps->top - ps->len));
//返回0 为未满 否则为栈满
return ps->top == ps->len;
}
int isStackEmpty(Stack *ps)
{
return ps->top == 0;
}
char pop(Stack *ps)
{
return ps->space[--ps->top];
}
void push(Stack *ps,char ch)
{
ps->space[ps->top++] = ch;
}