数据结构课程设计-表达式求值【完整版】.docx
《数据结构课程设计-表达式求值【完整版】.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计-表达式求值【完整版】.docx(17页珍藏版)》请在第壹文秘上搜索。
1、XXXXXX大学数据结构课程设计报告班级:学号:姓名:指导老师:-算术表达式求值一、需求分析二、程序的主要功能三、程序运行平台四、数据结构五、算法及时间复杂度六、测试用例七、程序源代码二感想体会与总结算术表达式求值一、需求分析一个算术表达式是由操作数(OPerand)、运算符(OPeratOr)和界限符(delimiter)组成的。假设操作数是正整数,运算符只含加减乘除等四种运算符,界限符有左右括号和表达式起始、结束符,如:#(7+15)*(23-28/4)引入表达式起始、结束符是为了方便。编程利用“算符优先法”求算术表达式的值。二、程序的主要功能(1)从键盘读入一个合法的算术表达式,输出正确
2、的结果。(2)显示输入序列和栈的变化过程。三、程序运行平台VisualC+6.0版本四、数据结构本程序的数据结构为栈。(1)运算符栈局部:structSqStack定义栈(char*base;栈底指针char*top;栈顶指针intstacksize;栈的长度intInitStack(SqStack&s)建立一个空栈S(if(!(s.base=(char*)malloc(50*sizeof(char)exit(O);s.top=s.base;s.stacksize=50;returnOK;charGetTop(SqStacks,char&e)运算符取栈顶元索if(s.top=s.base)栈为
3、空的时候返回ERROR(Printf(运算符栈为空!n);returnERROR;)elsee=*(s.top-1);栈不为空的时候用e做返回值,返回S的栈顶元素,并返回OKreturnOK;intPush(SqStack&s,chare)运算符入栈if(s.top-s.base=s.stacksize)(Printf(运算符栈满!n);s.base=(char*)realloc(s.base,(s.stacksize+5)*sizeof(char);栈满的时候,追力口5个存储空间if(!s.base)exit(OVERFLOW);s.top=s.base+s.stacksize;s.stac
4、ksize+=5;*(s.top)+=e;把e入栈returnOK;)intPo(SqStack&s,char&e)运算符出栈(if(s.top=s.base)栈为空栈的时候,返回ERROR(Printf(运算符栈为空!行);returnERROR;else(e=*-s.top;栈不为空的时候用e做返回值,删除S的栈顶元素,并返回OKreturnOK;intStackTraverse(SqStack&s)/运算符栈的遍历(char*t;t=s.base;if(s.top=s.base)(Printf(“运算符栈为空!n“);栈为空栈的时候返回ERRORreturnERROR;while(t!=
5、s.top)(printf(,%c,*t);栈不为空的时候依次取出栈内元素t+;)returnERROR;(2)数字栈局部:structSqStackn定义数栈int*base;栈底指针i11t*top;栈顶指针intstacksize;栈的长度;intInitStackn(SqStackn&s)建立一个空栈S(s.base=(int*)malloc(50*sizeof(int);if(!s.base)exit(OVERFLOW);存储分配失败s.top=s.base;s.stacksize=50;returnOK;intGetTopn(SqStackns,int&e)数栈取栈顶元素if(s.
6、top=s.base)(Prirltf(“运算数栈为空!r);栈为空的时候返回ERRORreturnERROR;)elsee=*(stoP-1);栈不为空的时候,用e作返回值,返回S的栈顶元素,并返回OKreturnOK;intPushn(SqStackn&s,inte)数栈入栈(if(s.top-s.base=s.stacksize)(Printf(运算数栈满!n);栈满的时候,追加5个存储空间s.base=(int*)realloc(s.base,(s.stacksize+5)*sizeof(int);if(!s.base)exit(OVERFLOW);s.top=s.base+s.sta
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 数据结构 课程设计 表达式 求值
