当前位置:首页 > 华南农业大学数据结构上机答案实验
}
*S.top++=e; return OK; }
Status Pop(SqStack &S,SElemType &e)
{// 若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR
if(S.top==S.base) return ERROR; e=*--S.top; return OK; }
Status StackTraverse(SqStack S,Status(*visit)(SElemType)) {// 从栈底到栈顶依次对栈中每个元素调用函数visit()。 // 一旦visit()失败,则操作失败 while(S.top>S.base) visit(*S.base++); printf("\\n"); return OK; }
Status visit(SElemType c) {
printf("%c",c);
return OK; }
void LineEdit()
{ // 利用字符栈s,从终端接收一行并送至调用过程的数据区。算法3.2 SqStack s; char ch,c; int n,i; InitStack(s);
scanf("%d",&n); ch=getchar(); for(i=1;i<=n;i++) { ch=getchar();
while(ch!='\\n') { switch(ch) {
case '#':Pop(s,c); break; // 仅当栈非空时退栈 case '@':ClearStack(s); break; // 重置s为空栈
default :Push(s,ch); // 有效字符进栈 }
ch=getchar(); // 从终端接收下一个字符 }
StackTraverse(s,visit); // 将从栈底到栈顶的栈内字符输出 ClearStack(s); // 重置s为空栈 }
DestroyStack(s); }
void main() {
LineEdit(); }
8588 表达式求值
时间限制:1000MS 内存限制:1000K 提交次数:182 通过次数:84
题型: 编程题 语言: 无限制
Description
利用栈编写表达式求值程序:输入含有“+”、“-”、“*”、“/”四则运算的表达式,其中负数要用(0-正数)表示,并以=结束。要求输出表达式的值(两运算符号的优先关系见教材表3.1)。此题目可选做。
#include<stdio.h> #include <math.h> #define True 1 #define False 0 #define size 1005 //字符栈
共分享92篇相关文档