stack.h

来自「利用堆栈实现算数表达式求值(运算过程为个位数)」· C头文件 代码 · 共 35 行

H
35
字号
 #define STACK_INIT_SIZE 100              /* 存储空间初始分配量 */
 #define STACKINCREMENT 2                 /* 存储空间分配增量 */
 typedef struct SqStack{                  /* 顺序栈 */
	char *base;                           /* 在栈构造之前和销毁之后,base的值为NULL */
	char *top;                            /* 栈顶指针 */
	int stacksize;                        /* 当前已分配的存储空间,以元素为单位 */
}SqStack;
 int InitStack(SqStack &S){               /* 构造一个空栈S */
	S.base=new SElemType[STACK_INIT_SIZE];
	if(!S.base)
		exit(0);  /* 存储分配失败 */
	S.top=S.base;
	S.stacksize=STACK_INIT_SIZE;
	return 1;
}
char GetTop(SqStack &S){               /* 若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR */
	char e;
	if(S.top==S.base)
		return -1;
	e=*(S.top-1);
	return e;
}
void Push(SqStack &S,char &e){         /* 插入元素e为新的栈顶元素 */
	if(S.top-S.base==S.stacksize)      /* 栈满 */
		cout<<"栈满,无法压栈!"<<endl;
	*S.top++=e;
}
char Pop(SqStack &S,char &e){          /* 若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR */
	if(S.top==S.base)
		return -1;
	e=*--S.top;
	return e;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?