//栈的顺序存储
//杨鑫
#include <stdio.h>
#include <stdlib.h>
//定义栈的大小
#define STACK_INIT_SIZE 10
#define STACKINCREMENT 2
//定义函数返回值的状态
typedef int Status;
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 1
#define INFEASIBLE -1
#define OVERFLOW -2
//定义结构体
typedef int SElemType;
typedef struct SqStack
{
SElemType *base; //栈底
SElemType *top; //栈顶
int stacksize; //栈的大小
}SqStack;
//栈的初始化
Status init_Stack(SqStack *S)
{
(*S).base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if(!(*S).base)
exit(OVERFLOW);
(*S).top = (*S).base;
(*S).stacksize = STACK_INIT_SIZE;
return OK;
}
//栈的销毁
Status destory_Stack(SqStack *S)
{
free((*S).base);
(*S).base = NULL;
(*S).top = NULL;
(*S).stacksize = 0;
return OK;
}
//栈的清空
Status clear_Stack(SqStack *S)
{
(*S).top = (*S).base;
return OK;
}
//判断栈是否为空
Status isempty_Stack(SqStack S)
{
if(S.top == S.base)
return TRUE;
e
数据结构之---c语言实现栈的顺序存储
最新推荐文章于 2022-11-10 18:40:23 发布