华南农业大学数据结构上机答案实验 联系客服

发布时间 : 星期四 文章华南农业大学数据结构上机答案实验更新完毕开始阅读

}

*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 //字符栈