📄 and.java
字号:
package test1;
public class AND extends NonLeaf{
public AND()
{
super("*");
}
public C_Event work(int ii,NonLeaf n,Node n1)//n父结点;n1子结点 chronic
{
C_Event ce=null;
Node n2;
if(n1==n.getlchild()){
n2=n.getrchild();
}else n2=n.getlchild();
NonLeaf p1,p2;
Leaf q1,q2;
if(n1.getisleaf() && n2.getisleaf())
{
q1=(Leaf)n1;
q2=(Leaf)n2;
//
if(q2.getevents().size()==0)
{
return ce;
}
else{
int j;
for(j=0;j<q2.getparent().size();j++)
if(q2.getparent().get(j)==n) break;
int i=0;
for(i=0;i<q2.getevents().size();i++)
{
if(q2.getevents().get(i).getflag(j)) break;
}
if(i==q2.getevents().size())
{
return ce;
}
else{
ce=new C_Event(q1.getevents().getLast(),q2.getevents().get(i),n);
q1.getevents().getLast().setflag(ii);
if(q1.getevents().getLast().checkdelete())
q1.getevents().removeLast();
q2.getevents().get(i).setflag(j);
if(q2.getevents().get(i).checkdelete())
q2.getevents().remove(i);
ce.initflag(n);
}
}
}else{
if(!n1.getisleaf() && n2.getisleaf())
{
p1=(NonLeaf)n1;
q2=(Leaf)n2;
if(q2.getevents().size()==0)
{
return ce;
}
else{
int j;
for(j=0;j<q2.getparent().size();j++)
if(q2.getparent().get(j)==n) break;
int i=0;
for(i=0;i<q2.getevents().size();i++)
{
if(q2.getevents().get(i).getflag(j)) break;
}
if(i==q2.getevents().size())
{
return ce;
}
else{
ce=new C_Event(q2.getevents().get(i),p1.getmid_result().getLast(),n);
p1.getmid_result().getLast().setflag(ii);
if(p1.getmid_result().getLast().checkdelete())
p1.getmid_result().removeLast();
q2.getevents().get(i).setflag(j);
if(q2.getevents().get(i).checkdelete())
q2.getevents().remove(i);
ce.initflag(n);
}
}
}else{
if(n1.getisleaf() && !n2.getisleaf())
{
q1=(Leaf)n1;
p2=(NonLeaf)n2;
if(!p2.getoperator().equals("!")){
if(p2.getmid_result().size()==0)
{
return ce;
}
else{
int j;
for(j=0;j<p2.getparent().size();j++)
if(p2.getparent().get(j)==n) break;
int i=0;
for(i=0;i<p2.getmid_result().size();i++)
{
if(p2.getmid_result().get(i).getflag(j)) break;
}
if(i==p2.getmid_result().size())
{
return ce;
}
else{
ce=new C_Event(q1.getevents().getLast(),p2.getmid_result().get(i),n);
q1.getevents().getLast().setflag(ii);
if(q1.getevents().getLast().checkdelete())
q1.getevents().removeLast();
p2.getmid_result().get(i).setflag(j);
if(p2.getmid_result().get(i).checkdelete())
p2.getmid_result().remove(i);
ce.initflag(n);
}
}}else{
if(p2.getmid_result().size()==0)
{
ce=new C_Event(q1.getevents().getLast(),n);
q1.getevents().getLast().setflag(ii);
if(q1.getevents().getLast().checkdelete())
q1.getevents().removeLast();
ce.initflag(n);
}
else{
int j;
for(j=0;j<p2.getparent().size();j++)
if(p2.getparent().get(j)==n) break;
boolean f=true;
for(int i=0;i<p2.getmid_result().size();i++)
{
if(p2.getmid_result().get(i).getflag(j))
{
f=false;
p2.getmid_result().get(i).setflag(j);
}
}
if(f)
{
ce=new C_Event(q1.getevents().getLast(),n);
q1.getevents().getLast().setflag(ii);
if(q1.getevents().getLast().checkdelete())
q1.getevents().removeLast();
ce.initflag(n);
}else{
return ce;
}
}
}
}else{
p1=(NonLeaf)n1;
p2=(NonLeaf)n2;
if(!p2.getoperator().equals("!")){
if(p2.getmid_result().size()==0)
{
return ce;
}
else{
int j;
for(j=0;j<p2.getparent().size();j++)
if(p2.getparent().get(j)==n) break;
int i=0;
for(i=0;i<p2.getmid_result().size();i++)
{
if(p2.getmid_result().get(i).getflag(j)) break;
}
if(i==p2.getmid_result().size())
{
return ce;
}
else{
ce=new C_Event(p1.getmid_result().getLast(),p2.getmid_result().get(i),n);
p1.getmid_result().getLast().setflag(ii);
if(p1.getmid_result().getLast().checkdelete())
p1.getmid_result().removeLast();
p2.getmid_result().get(i).setflag(j);
if(p2.getmid_result().get(i).checkdelete())
p2.getmid_result().remove(i);
ce.initflag(n);
}
}
}
else{
if(p2.getmid_result().size()==0)
{
ce=new C_Event(p1.getmid_result().getLast(),n);
p1.getmid_result().getLast().setflag(ii);
if(p1.getmid_result().getLast().checkdelete())
p1.getmid_result().removeLast();
ce.initflag(n);
}
else{
int j;
for(j=0;j<p2.getparent().size();j++)
if(p2.getparent().get(j)==n) break;
boolean f=true;
for(int i=0;i<p2.getmid_result().size();i++)
{
if(p2.getmid_result().get(i).getflag(j))
{
f=false;
p2.getmid_result().get(i).setflag(j);
}
}
if(f)
{
ce=new C_Event(p1.getmid_result().getLast(),n);
p1.getmid_result().getLast().setflag(ii);
if(p1.getmid_result().getLast().checkdelete())
p1.getmid_result().removeLast();
ce.initflag(n);
}else{
return ce;
}
}
}
}
}
}
return ce;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -