首页 > 其他 > 详细

课后作业2

时间:2018-09-19 19:05:33      阅读:121      评论:0      收藏:0      [点我收藏+]
  1. 在文章开头写出你目前的代码量。

             目前写过几千行代码

  1. 在文章开头给出你所Fork的同名仓库的Github项目地址

             https://gitee.com/sybrjsjrg_br_jsj_rg/personal_project41634.git

  1. 在开始实现程序前,在下述PSP表格记录下你估计将在程序的各个模块的开发上耗费的时间。并说明估计根据。

 技术分享图片


  1. 程序对表达式类型的支持程度。描述你的程序对不同类型表达式求值的支持程度。
  • 能支持两个操作数,一种运算符。
  • 能支持两个操作数的简单四则运算(只有一个操作符)。
  • 能支持简单混合四则运算(最多有3个操作符,没有括号)。
  1. 程序设计与实现过程。设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?说明你实现算法的关键部分(不必列出源代码),以及实现过程中遇到的关键问题与困难。

一开始拿到题目时,也是想到通过判断拿到的字符串中是否含有“+、- 、*、/”运算符,来进行计算,但是这种算法没办法实现混合的四则运算,所以我查找了有关资料,包括后缀表达式,栈队有关知识等,并且借鉴了很多大神的博客,基本思路如下:

1.将表达式分解成操作数和操作符数组

2.将中缀表达式数组转换成后缀栈:按顺序遍历符号,如果是操作数直接输出,如果栈为空,或符号优先级比栈顶的符号优先级高,直接入栈,如果栈不为空,并且符号优先级小于等于栈顶符号优先级,先弹出并输出栈顶符号,直到栈为空或符号优先级比栈顶的符号优先级高,然后再将当前符号入栈,所有符号都遍历了,如果栈中还有符号,弹出并输出。

3.计算后缀表达式

4.应用操作符进行计算

 

 

基本过程如图:

 技术分享图片

 

算法的关键步骤:

l  将中缀表达式转换成后缀表达式

l  计算后缀表达式

 

 

课后作业2

原文:https://www.cnblogs.com/lx1106/p/9676002.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!