📄 trees.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 + -