trees.java
来自「RFID复杂事件处理系统的研究实验」· Java 代码 · 共 123 行
JAVA
123 行
package test2;
import java.util.*;
public class Trees {
public static LinkedList<Tree> roots=new LinkedList<Tree>();
public static LinkedList<Leaf> leafs=new LinkedList<Leaf>();
public static LinkedList<Node> nodes=new LinkedList<Node>();
public static void contruct42()
{
Leaf a1=new Leaf('A');
Leaf b1=new Leaf('B');
NOT s11=new NOT();
Sequence s12=new Sequence();
s11.setrchild(a1);
s12.setlchild(s11);
s12.setrchild(b1);
a1.addparent(s11);a1.setMode(true);
b1.addparent(s12);b1.setMode(true);
s11.addparent(s12);s11.setMode(false);
Tree tree1=new Tree("(!A);B",s12);
tree1.setNodes();
tree1.getLeafnodes().addLast(a1);
tree1.getLeafnodes().addLast(b1);
roots.addLast(tree1);
Leaf a2=new Leaf('A');
Leaf b2=new Leaf('B');
Leaf c2=new Leaf('C');
Sequence s21=new Sequence();
Sequence s22=new Sequence();
s21.setlchild(a2);
s21.setrchild(s22);
s22.setlchild(b2);
s22.setrchild(c2);
a2.addparent(s21);a2.setMode(false);
b2.addparent(s22);b2.setMode(false);
c2.addparent(s22);c2.setMode(true);
s22.addparent(s21);s22.setMode(true);
Tree tree2=new Tree("A;(B;C)",s21);
tree2.setNodes();
tree2.getLeafnodes().addLast(a2);
tree2.getLeafnodes().addLast(b2);
tree2.getLeafnodes().addLast(c2);
roots.addLast(tree2);
Leaf a3=new Leaf('A');
Leaf b3=new Leaf('B');
Leaf c3=new Leaf('C');
Sequence s31=new Sequence();
OR s32=new OR();
s31.setlchild(a3);
s31.setrchild(s32);
s32.setlchild(b3);
s32.setrchild(c3);
a3.addparent(s31);a3.setMode(false);
b3.addparent(s32);b3.setMode(true);
c3.addparent(s32);c3.setMode(true);
s32.addparent(s31);s32.setMode(true);
Tree tree3=new Tree("A;(B+C)",s31);
tree3.setNodes();
tree3.getLeafnodes().addLast(a3);
tree3.getLeafnodes().addLast(b3);
tree3.getLeafnodes().addLast(c3);
roots.addLast(tree3);
for(int i=0;i<roots.size();i++)
{
leafs.addAll(roots.get(i).getLeafnodes());
}
setNodes();
}
public static LinkedList<Leaf> insert(P_Event e)
{
LinkedList<Leaf> leaf=new LinkedList<Leaf>();
for(int i=0;i<leafs.size();i++)
{
if(leafs.get(i).gettype()==e.gettype())
leaf.addLast(leafs.get(i));
}
if(leaf.size()!=0)
{
for(int i=0;i<leaf.size();i++)
leaf.get(i).insert(e);
}
return leaf;
}
public static void setNodes() {
for(int i=0;i<roots.size();i++)
nodes.addLast(roots.get(i).getRoot());
for(int i=0;i<nodes.size();i++)
{
if(!nodes.get(i).getisleaf()){
NonLeaf n=(NonLeaf)nodes.get(i);
if(n.getrchild()!=null && !nodes.contains(n.getrchild()))
nodes.addLast(n.getrchild());
if(n.getlchild()!=null && !nodes.contains(n.getlchild()))
nodes.addLast(n.getlchild());
}
}
}
public static LinkedList<Node> getNodes() {
return nodes;
}
public static boolean checkisroot(Node n)
{
int i;
for(i=0;i<roots.size();i++)
if(n==roots.get(i).getRoot()) break;
if(i==roots.size()) return false;
return true;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?