头文件
#ifndef _STACK_H_
#define _STACK_H_
#define SIZE 10
typedef enum {FALSE = 0 , TRUE} BOOL;
typedef int Data;
typedef struct stack
{
Data data[SIZE];
int top;
}Stack;
//初始化栈
void Init(Stack *s);
//入栈
void Push(Stack *s , Data data);
//出栈
void Pop(Stack *s);
//判断空栈
BOOL Empty(Stack *s);
//判断满栈
BOOL Full(Stack *s);
//获取栈顶 元素
Data GetTop(Stack *s);
#endif // _STACK_H_
功能函数
#include "stack.h"
#include <stdlib.h>
#include <stdio.h>
//初始化栈
void Init(Stack *s)
{
if (NULL == s)
return;
s->top = -1;
}
//判断空栈
BOOL Empty(Stack *s)
{
if (NULL == s)
return FALSE;
if(s->top == -1)
return TRUE;
return FALSE;
}
//判断满栈
BOOL Full(Stack *s)
{
if (NULL == s)
return FALSE;
if(s->top == SIZE-1)
return TRUE;
return FALSE;
}
//入栈
void Push(Stack *s , Data data)
{
if (NULL == s)
return ;
if(Full(s) == TRUE)
return ;
s->data[++s->top] = data;
}
//出栈
void Pop(Stack *s)
{
if (NULL == s)
return ;
if(Empty(s) == TRUE)
return ;
s->top--;
}
//获取栈顶 元素
Data GetTop(Stack *s)
{
if (NULL == s)
return;
if(Empty(s) == TRUE)
exit(-1);
return s->data[s->top];
}