首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

基于逻辑表达式的会合运算

2012-07-28 
基于逻辑表达式的集合运算课题:基于逻辑表达式的集合运算 需求: 实际项目开发中,我们可能会有这样的需求,

基于逻辑表达式的集合运算

课题:基于逻辑表达式的集合运算

 

需求:

 实际项目开发中,我们可能会有这样的需求,有A、B、C、D四个集合,需要对这四个集合进行一定的逻辑运算,从而得到经过该表达式运算之后的最终的集合情况。

 

实例:

 1、假设现在有四个集合元素分别为:
 
 A集合:20,50,60
 B集合:70,80
 C集合:90,100
 D集合:30,70,80
 
 2、运算表达式为:(A∪B)∩(C∪D)
 
 3、我们想要的最终集合为:70,80.
 
 A∪B = 20,50,60,70,80
 C∪D = 90,100,70,80,30
 (A∪B)∩(C∪D)= 70,80

 


步骤:

 1、建立操作模型。
 
 逻辑表达式的解析,一般思路就是依据运算符号(包括括号)优先级下坠,构建成树状结构。所以我们建立的模型如下:
 
 LogicExpression{
  LogicExpression left;//左分支
  LogicExpression right;//右分支
  Collection data;//数据集合
 }
 
 2、解析逻辑表达式,根据表达式初始化操作模型的树状结构。
 
 3、根据集合索引,向树状结构的操作模型中各个节点分发数据集合。
 
 4、根据树模型的中序遍历规则,将各个节点的左右俩分支的数据集合进行运算。
 
 5、最后得到根节点的数据集合,即为所求。

 


 
源码:

 



测试:

 

 

结果:

 


总结:

 godway
 com.gaowei@msn.com
 2012-07-04

 

 

热点排行