




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构实验报告实验内容:算术表达式求值班 级:计算机1203班成 员:黄健 20123871尹东辉 20123880张新华 20123884数据结构实验报告一课题概述1二概要设计原理1三详细程序清单及注释说明1四运行与测试及结果5五心得体会6六参考文献66一课题概述1.实验目的:栈和队列应用类实验题目参考2.实验内容:算术表达式求值 【问题描述】 由输入的四则算术表达式字符串,动态生成算术表达式所对应的后缀式,通过后缀式求值并输出。【实验要求】 设计十进制整数四则运算计算器。 (1)采用顺序栈等数据结构。可以将数据存储在顺序表中。 (2)给定表达式字符串,后缀表达式。 (3)对后缀表达式求值并输出。二概要设计原理1. 数据结构设计任何一个表达式都是由操作符,运算符和界限符组成的。我们分别用顺序栈来寄存表达式的操作数和运算符。栈是限定于紧仅在表尾进行插入或删除操作的线性表。顺序栈的存储结构是利用一组连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置,base为栈底指针,在顺序栈中,它始终指向栈底,即top=base可作为栈空的标记,每当插入新的栈顶元素时,指针top增1,删除栈顶元素时,指针top减1。2. 算法设计为了实现算符优先算法。可以使用两个工作栈。一个称为OPTR,用以寄存运算符,另一个称做OPND,用以寄存操作数或运算结果。(1)首先置操作数栈为空栈,表达式起始符”#”为运算符栈的栈底元素;(2)依次读入表达式,若是操作符即进OPND栈,若是运算符则和OPTR栈的栈顶运算符比较优先权后作相应的操作,直至整个表达式求值完毕三详细程序清单及注释说明#include#include#include#include#define STACK_INIT_SIZE 100;typedef structint *base;int *top;int stacksize;SqStack1;typedef structchar *base;char *top;int stacksize;SqStack2;SqStack1 OPND;/运算数栈SqStack2 OPTR;/运算符栈char precede(char the,char c)/优先级if(the=+|the=-)if(c=+|c=-|c=)|c=#)return();else return();if(the=*|the=/)if(c=()return(); if(the=()if(c=)return(=);else return();if(the=#)if(c=#)return(=);else return(=48&c=0;k-) d=d+abk*pow(10,i-k-1); *OPND.top+=d; i=0;d=0; switch(precede(*(OPTR.top-1),c) case:theta=*-OPTR.top;abc=c; b=*-OPND.top;a=*-OPND.top; *OPND.top+=Operate(a,theta,b); break; printf(计算结果为:); return *(OPND.top-1);void main()printf(%dn,qiuzhi();四运行与测试及结果五心得体会这次实验设计让我更加了解并更加灵活运用大一学到的C程序设计和这个学期学到的数据结构。实验任务要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力和更加了解编程思想和编程技巧。这次课程设计让我有一个深刻的体会,编程最需要严谨,总是忘一些符号,比如分号或*等等,因为这些小失误浪费的时间也比较多。这个程序是我们4个人完成的,同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们成功的一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业转让合同(15篇)
- 出纳员年终工作总结(15篇)
- 医务科上半年工作总结
- 2025广东佛山南海农商银行金融科技总监社会招聘模拟试卷及参考答案详解
- 2025黑龙江黑河市爱辉区招聘公益性岗位就业人员32人模拟试卷及答案详解(历年真题)
- 2025国航股份西南分公司乘务员岗位高校毕业生校园招聘(四川)模拟试卷附答案详解
- 不再犯错协议书7篇
- 2025广东南粤银行资金运营中心招聘考前自测高频考点模拟试题及答案详解(有一套)
- 2025年黑龙江广播电视台(黑龙江省全媒体心)第二次公开招聘事业单位编制人员60人考前自测高频考点模拟试题附答案详解(完整版)
- 2025年多导生理记录仪(8导以上)项目合作计划书
- 人民币国际化进程中跨境贸易人民币结算:现状、挑战与路径探索
- 2025-2026学年九年级英语上学期第一次月考 (江苏省连云港专用)原卷
- 2025年食品行业市场风险防范策略方案
- 2025年国有企业中层管理岗位竞聘面试技巧与预测题集
- 电动消防排烟窗施工方案
- 2025年1月浙江省高考政治真题卷含答案解析
- 宗法制度教学课件
- 2025年卫生高级职称面审答辩(消化内科)在线题库及答案(副高面审)
- 智能拐杖产品讲解
- 2025年贵州省中考英语试卷
- 血源性传播疾病暴露后处理
评论
0/150
提交评论