?? stack.h
字號:
#include "iostream.h"
#include "stdio.h"
#include "malloc.h"
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef char SElemType;
typedef struct {
SElemType *base; // 存儲空間基址
SElemType *top; // 棧頂指針
int stacksize; // 允許的最大存儲空間以元素為單位
} SqStack;
Status InitStack (SqStack &S)
{
S.base = new SElemType[STACK_INIT_SIZE];
if (!S.base) return OVERFLOW; //存儲分配失敗
S.top = S.base;
S.stacksize =STACK_INIT_SIZE;
return OK;
}
Status ClearStack(SqStack &S)
{
S.top=S.base;
return OK;
}
Status StackEmpty(SqStack S)
{
if ((S.top-S.base)==0) return TRUE;
else return FALSE;
}
int StackLength(SqStack S)
{
return S.top-S.base;
}
Status GetTop(SqStack S, SElemType &e)
{ // 若棧不空,則用 e 返回S的棧頂元素,并返回OK;否則返回ERROR
if (S.top==0) return ERROR;
e=*(S.top-1); //返回非空棧中棧頂元素
return TRUE;
}
Status Push(SqStack &S, SElemType e)
{ // 若棧不滿,則將 e 插入棧頂
if (S.top - S.base >= S.stacksize) //棧滿
return OVERFLOW;
*S.top++ = e;
return OK;
}
Status Pop (SqStack &S) {
// 若棧不空,則刪除S的棧頂元素,
// 用 e 返回其值,并返回OK;
// 否則返回ERROR
if (S.top == S.base) return ERROR;
return *(--S.top);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -