[发明专利]用于公式的数据处理方法和装置有效
申请号: | 201410779244.4 | 申请日: | 2014-12-15 |
公开(公告)号: | CN104484311B | 公开(公告)日: | 2019-04-09 |
发明(设计)人: | 池雷 | 申请(专利权)人: | 北京国双科技有限公司 |
主分类号: | G06F17/10 | 分类号: | G06F17/10 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 吴贵明;张永明 |
地址: | 100086 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 公式 数据处理 方法 装置 | ||
1.一种用于公式的数据处理方法,其特征在于,包括:
将接收到的用户输入的待校验公式转换为后缀表达式;
构建所述后缀表达式的二叉树;
判断所述后缀表达式的所述二叉树的树节点是否符合第一预设条件;
若所述二叉树的所述树节点符合所述第一预设条件,则判断出所述待校验公式正确;
若所述二叉树的所述树节点不符合所述第一预设条件,则判断出所述待校验公式不正确,
其中,将接收到的用户输入的待校验公式转换为后缀表达式包括:
接收所述用户输入的所述待校验公式;
获取所述待校验公式的各个操作符的优先级;
按照各个所述操作符的优先级将所述待校验公式转换为对应的所述后缀表达式;
在按照各个操作符的优先级将待校验公式转换为对应的后缀表达式之后,该用于公式的数据处理方法包括:按照第二预设条件修正后缀表达式,得到修正后的后缀表达式,其中,所述第二预设条件包括:将后缀表达式中距离求和操作符“∑”最近的一个普通操作符与求和操作符“Σ”合并为一个操作符,所述普通操作符包括:“+”、“-”、“*”、“/”,
其中,判断所述后缀表达式的所述二叉树的树节点是否符合第一预设条件包括:
判断所述二叉树的各个第一节点是否均为操作数,其中,所述第一节点为所述二叉树的叶子节点;
若所述二叉树存在不为所述操作数的所述第一节点,则判断出所述二叉树的所述树节点不符合所述第一预设条件;
若所述二叉树的所述第一节点均为所述操作数,则判断所述二叉树的第二节点是否均为操作符,其中,所述第二节点为所述二叉树上除所述叶子节点之外的节点;
若所述二叉树存在不为所述操作符的所述第二节点,则判断出所述二叉树的所述树节点不符合所述第一预设条件;
若所述二叉树的所述第二节点均为所述操作符,则判断所述二叉树的所述第二节点是否均具有两个子树;
若所述二叉树存在不具有所述两个子树的所述第二节点,则判断出所述二叉树的所述树节点不符合所述第一预设条件;
若所述二叉树的所述第二节点均具有两个子树,则判断出所述二叉树的所述树节点符合所述第一预设条件。
2.根据权利要求1的数据处理方法,其特征在于,获取所述待校验公式的各个操作符的优先级包括:
判断各个所述操作符是否均存在于预设数据表;
若所述操作符不均存在于所述预设数据表,则结束判断,然后提示所述用户重新输入所述待校验公式;
若所述操作符均存在于所述预设数据表,则从所述预设数据表中读取所述操作符的优先级。
3.根据权利要求1所述的数据处理方法,其特征在于,判断所述二叉树的各个第一节点是否均为操作数包括:
读取各个所述第一节点的数据;
判断各个所述第一节点的所述数据的类型是否为变量或常量;
若各个所述第一节点的数据的类型均为所述变量或常量,则判断出所述二叉树的各个所述第一节点均为所述操作数;
若存在数据的类型不为所述变量或常量的所述第一节点,则判断出所述二叉树中存在不为所述操作数的所述第一节点。
4.根据权利要求1至3中任意一项所述的数据处理方法,其特征在于,在接收所述用户输入的所述待校验公式之前,所述数据处理方法还包括:
获取预设的所述操作符的优先级;
保存所述操作符与所述操作符的优先级的对应关系为预设数据表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京国双科技有限公司,未经北京国双科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410779244.4/1.html,转载请声明来源钻瓜专利网。