⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trees.java

📁 RFID复杂事件处理系统的研究实验
💻 JAVA
字号:
package test1;
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 contruct41()
	{
		Leaf a=new Leaf('A'); 
		Leaf b=new Leaf('B'); 
		Leaf c=new Leaf('C');
		Sequence s1=new Sequence(); 
		NOT s2=new NOT();
		AND s3=new AND();
		Sequence s4=new Sequence(); 
		Sequence s5=new Sequence(); 
		OR s6=new OR();
		s1.setlchild(a);
		s1.setrchild(b);
		s2.setrchild(s1);
		s3.setlchild(b);
		s3.setrchild(s2);
		s4.setlchild(s1);
		s4.setrchild(c);
		s5.setlchild(a);
		s5.setrchild(c);
		s6.setlchild(s1);
		s6.setrchild(s5);
		a.addparent(s1);a.getMode().addLast(false);
		a.addparent(s5);a.getMode().addLast(false);
		b.addparent(s1);b.getMode().addLast(true);
		b.addparent(s3);b.getMode().addLast(true);
		c.addparent(s4);c.getMode().addLast(true);
		c.addparent(s5);c.getMode().addLast(true);
		s1.addparent(s2);s1.getMode().addLast(true);
		s1.addparent(s4);s1.getMode().addLast(false);
		s1.addparent(s6);s1.getMode().addLast(true);
		s2.addparent(s3);s2.getMode().addLast(false);
		s5.addparent(s6);s5.getMode().addLast(true);
		Tree tree1=new Tree("B*(!(A;B))",s3);
		tree1.setNodes();
		tree1.getLeafnodes().addLast(a);
		tree1.getLeafnodes().addLast(b);
		roots.addLast(tree1);
		Tree tree2=new Tree("A;B;C",s4);
		tree2.setNodes();
		tree2.getLeafnodes().addLast(a);
		tree2.getLeafnodes().addLast(b);
		tree2.getLeafnodes().addLast(c);
		roots.addLast(tree2);
		Tree tree3=new Tree("(A;B)+(A;C)",s6);
		tree3.setNodes();
		tree3.getLeafnodes().addLast(a);
		tree3.getLeafnodes().addLast(b);
		tree3.getLeafnodes().addLast(c);
		roots.addLast(tree3);
		leafs.addAll(roots.get(1).getLeafnodes());
		setNodes();
		
		
	}
	
	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.getMode().addLast(true);
		b1.addparent(s12);b1.getMode().addLast(true);
		s11.addparent(s12);s11.getMode().addLast(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.getMode().addLast(false);
		b2.addparent(s22);b2.getMode().addLast(false);
		c2.addparent(s22);c2.getMode().addLast(true);
		s22.addparent(s21);s22.getMode().addLast(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.getMode().addLast(false);
		b3.addparent(s32);b3.getMode().addLast(true);
		c3.addparent(s32);c3.getMode().addLast(true);
		s32.addparent(s31);s32.getMode().addLast(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 Leaf insert(P_Event e)
	{
		int i;
		for(i=0;i<leafs.size();i++)
		{
			if(leafs.get(i).gettype()==e.gettype())
				break;
		}
		if(i!=leafs.size())
		{
			leafs.get(i).insert(e);
			e.initflag(leafs.get(i));
			return leafs.get(i);			
		}else return null;
		
	}
	
	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;
	}
	
	public static Tree gettree(Node n)
	{
		int i;
		for(i=0;i<roots.size();i++)
		if(n==roots.get(i).getRoot()) break;
		return roots.get(i);
	}


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -