📄 node.java
字号:
//结点类,封装各个极大极小结点
class Node{
String name;//节点名
boolean isMax;//判断是极大还是极小结点
boolean isCut;//判断是否已被剪枝
int data;//结点值
int pos;//在列表中的位置
Node former;//父结点
Node next;//应走的下一个子结点
NodeList son;//子结点集合
//构造函数
Node(){
name=null;
isMax=true;
isCut=false;
data=-10000;
pos=0;
former=null;
next=null;
son=new NodeList();
}
//通过结点名构造结点
Node(String s){
name=s;
isMax=true;
isCut=false;
data=-10000;
pos=0;
former=null;
next=null;
son=new NodeList();
}
//剪枝,所剪结点为所带参数结点开始之后的兄弟结点
public void cut(Node p){
int num=-1;
for(int i=0;i<son.size;i++){
if(son.get(i).name.equals(p.name)){//寻找与所带参数结点相同的结点
num=i;//记录其位置
break;
}
}
if(num>=son.size-1){//若是其父结点的最后一个结点,则无法剪枝,返回
return;
}
System.out.print("剪枝:"+name+":");//输出发生剪枝的结点
for(int i=num+1;i<son.size;i++){//从当前子结点之后的一个子节点开始剪枝
son.get(i).isCut=true;//标记为被剪枝
System.out.print(son.get(i).name+" ");//输出所剪的结点名
}
System.out.println();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -