#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef int Boolean;
typedef int SElemType;
#define STACK_INIT_SIZE 100
#define STACK_INCREMENT 10
//顺序栈
struct SqStack
{
SElemType *base;
SElemType *top;
int stacksize;
};
//构造一个空栈S
Status InitStack(SqStack &S)
{
S.base = (int*)malloc(STACK_INIT_SIZE*sizeof(int));
if (!S.base)
exit(OVERFLOW);
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return OK;
}
//检查s栈是否为空栈
Boolean StackEmpty(SqStack S)
{
if (S.top == S.base)
return TRUE;
else
return FALSE;
}
//插入元素e为新的栈顶元素
Status Push(SqStack &S,int e)
{
if (S.top-S.base >= S.stacksize) //栈满,追加存储空间
{
S.base = (SElemType*)realloc(S.base,(S.stacksize+STACK_INCREMENT)*sizeof(SElemType));
if (!S.base)
exit (OVERFLOW);
S.top = S.base + S.sta
栈-十进制转八进制
最新推荐文章于 2024-07-14 21:19:59 发布