电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

栈的应用实验报告

栈的应用实验报告_第1页
1/15
栈的应用实验报告_第2页
2/15
栈的应用实验报告_第3页
3/15
数据结构实验报告 报告名称 栈的应用 专 业 网络工程 班 级 1 0 0 1 学 号 ************ 姓 名 张剑 指导教师 陈淑红 李珍辉 黄哲 2 0 1 2 年 5 月 4 日 一、 实验目的: 熟练掌握栈的基本操作,进一步理解栈的应用。 二、 实验内容与基本要求: 实验内容: 设计一个程序,用算符优先法对算术表达式求值 基本要求: 以字符序列的形式从终端输入语法正确的、不含变量的算术表达式,利用算符优先关系,实现对算术四则混合运算表达式求值。 三、实现提示: 1.利用栈辅助分析算符优先关系; 2.在读入表达式字符序列的同时,完成运算符和操作数的识别处理,以及相应的运算; 3.在识别出操作数的同时,要将其字符序列形式转换成相应的浮点数形式。 四.概要设计: 1.顺序栈的定义: typedef struct{ SElemType *base; SElemType *top; int stacksize; } SqStack; 2.栈的基本操作: InitStack(&S) 操作结果:构造一个空栈 S。 DestoryStack(&S) 初始条件:栈 S 存在。、 操作结果:栈 S 被销毁。 ClearStack(&S) 初始条件:栈 S 存在。、 操作结果:将 S 清为空栈。 StackEmpty(&S) 初始条件:栈 S 存在。、 操作结果:若 S 为空栈,则返回 TUUE,否则 FALSE. StackLength(&S) 初始条件:栈S 存在。、 操作结果:返回 S 的 元素个数,即栈的长度。 GetTop(S,&e) 初始条件:栈S 存在且非空。 操作结果:用 e 返回 S 的栈顶元素。 Push(&S,e) 初始条件:栈S 存在。、 操作结果:插入元素 e 为新的栈顶元素。 pop (&s,&e) 初始条件: 栈S 存在且非空。 操作结果: 删除 S 的栈顶元素,并用 e 返回其值。 StackTravse(S,vist()) 初始条件:栈S 存在且非空. 操作结果:从栈底到栈顶依次对 S 的每个元素调用函数 vist(),一旦 vist()失败,择操作结束。 3.表达式求职操作: OpperandType EvauluateExpresseion(){ //算术表达式求值的算符优先算法。设 OPTR 和 OPND 分别为运算符栈和运算式//栈OP 为运算符集合。 TnitStack(OPTR);Push(OPTR,”#”); intStack (OPND); c=getchar(); while(c!’#’||Gettop(OPTR)!=’#’){ if(!In(c,op)){Push(OPND,c);c=getchar(); }//不是运算符则进栈。 else switch(Precede(GetTop(OPTR),c){ case’<’: //栈顶元素优先权低。 Push(OPTR,c);c=getchar();...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

栈的应用实验报告

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部