首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于N叉树的字符串表达式计算方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:江汉大学

摘要:本发明提供一种基于N叉树的字符串表达式计算方法,该方法包括:S1、输入字符串表达式;S2、对输入的字符串表达式进行标准化处理;S3、扫描标准化处理过后的字符串,并将扫描的字符串拆分成运算符、操作数、标识符和非标识符;S4、将分拆出来的字符分别按照运算符运算规则,借助运算符栈和数据栈,使得字符串转化成N叉树;S5、利用N叉树实现字符串运算。本发明基于N叉树对字符串进行计算,使得计算能力更强、适用范围更广泛。

主权项:1.一种基于N叉树的字符串表达式计算方法,其特征在于,所述方法包括:S1、输入字符串表达式;S2、对输入的字符串表达式进行标准化处理;S3、扫描标准化处理过后的字符串,并将扫描的字符串拆分成运算符、操作数、标识符和非标识符;S4、将分拆出来的字符分别按照运算符运算规则,借助运算符栈和数据栈,使得字符串转化成N叉树,包括:S41、判断是否读完数据,当未读完数据时,执行A4部分,当读完数据时,进行S42;S42、从字符串表达式中读取一个数据或操作数到data;S43、判断data是否是数值常量,如果data是数值常量,则创建数据节点,并将数据节点压入到数据栈中,如果data不是数值常量,则直接进行S44;S44、判断data是否是操作符,如果data是操作符,则判断data是否是+或-以及,当data是+或-时,执行A1部分,当data是时,执行A2部分,当data既不是+或-,又不是时,执行A3部分;如果data不是操作符,则直接执行S45;S45、判断data是否是标识符,如果data是标识符,则再进一步判断data是否是函数或系统运算符,如果data是函数或系统运算符,则将data压入操作符栈,否则将data压入数据栈,如果data不是标识符,则data是非法标识符,提前退出,并返回错误信息;依次循环S41-S45,如果操作符栈中有数据,则执行A4部分;如果操作符栈为空,而数据栈中只有一个操作数节点,则返回该节点;其中,所述A1部分表示:当读取到的字符串是+、-或not时,进行创建子树操作;所述A2部分表示:当读取到的字符串是右括号时,处理创建子树操作;所述A3部分表示:扫描到除+、-或者not以外的其他运算符时,出来创建子树操作;所述A4部分表示:当字符串都扫描完成后,需要处理操作数栈和运算符栈,进行创建子树操作;S5、利用N叉树实现字符串运算;所述S4还包括:创建相关类;所述创建相关类包括:创建表达式类、创建运算符类和创建节点类;其中,所述创建节点类的类型包括运算符、操作数和函数类型,所述创建节点类主要用于实现各种运算,并将最终运算结果返回,其方法包括:S4031、判断节点数是否是操作数节点,当节点数是操作数节点时,判断所述节点是否是操作数常量,如果所述节点是操作数常量,则返回节点值,如果所述节点不是操作数常量,则判断变量是否在变量队列variableList中,当所述变量存在变量队列variableList中,则返回变量值,否则返回变量不存在错误信息;当节点数不是操作数节点时,直接进行S4032;S4032、判断节点是否是操作符,当所述节点是操作符时,得到所述节点的孩子节点数childrenNum,并判断当前运算符需要的操作数个数是否等于childrenNum,如果当前运算符需要的操作数个数等于childrenNum,则当前孩子都分别调用节点类的方法compute,得到相应结果作为操作数,然后执行childrenNum元运算,将最终结果值返回,如果当前运算符需要的操作数个数不等于childrenNum,返回相应操作符运算错误;当所述节点不是操作符时,直接进行S4033;S4033、判断节点是否是函数,当所述节点是函数时,判断当前函数是否在队列functionList中,如果当前函数不在队列functionList中,则输出不存在函数错误,如果当前函数存在队列functionList中,得到所述节点孩子节点数childrenNum,然后判断当前函数需要的参数个数是否等于childrenNum,当当前函数需要的参数个数等于childrenNum时,当前孩子都分别调用节点类的方法compute,得到相应结果作为函数的参数,如果这些参数与函数规定的参数类型都一致,则调用函数,并将结果返回,当当前函数需要的参数个数不等于childrenNum时,返回函数参数类型不一致错误;当所述节点不是函数时,直接返回未知节点错误。

全文数据:

权利要求:

百度查询: 江汉大学 一种基于N叉树的字符串表达式计算方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。