⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stack.h

📁 利用堆栈实现算数表达式求值(运算过程为个位数)
💻 H
字号:
 #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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -