一个对象,它有一个父对象和一个动作,每个父对象都有一个父对象和一个动作
an object where it has a parent and an action and each parent has a parent and an action
如何在 Java
中执行此操作
public class State implements Comparable<State> {
//other attbs;
State parent;
String actionFromParent;
// other code
}
其中 x 是 State 类型的对象,每个父对象本身都有来自父对象的操作。我想这样做直到我有 actionFromParent == null.
不知有多少家长。我用它来打印 A* 算法的路径。在x(state currentnode)满足目标后,我一直在打印路径,我打印了它的子节点的所有actionfromparents。
System.out.println(x.actionFromParent);
System.out.println(x.parent.actionFromParent);
System.out.println(x.parent.parent.actionFromParent);
System.out.println(x.parent.parent.parent.actionFromParent);
.....
until (x.parent.parent.parent.....parent.actionFromParent == null)
这就是你想要的:
while(x.parent.actionFromParent != null){
System.out.println(x.actionFromParent);
System.out.println(x.parent.actionFromParent);
x = x.parent;
}
您可以使用 while
循环或递归函数。
使用 while
循环:
State x = theState;
while (x != null && x.actionFromParent != null) {
System.out.println(x.actionFromParent);
x = x.parent;
}
用递归函数:
public static void printActionsFromParent(State x) {
if (x != null && x.actionFromParent != null) {
System.out.println(x.actionFromParent);
printActionsFromParent(x.parent);
}
}
如何在 Java
中执行此操作public class State implements Comparable<State> {
//other attbs;
State parent;
String actionFromParent;
// other code
}
其中 x 是 State 类型的对象,每个父对象本身都有来自父对象的操作。我想这样做直到我有 actionFromParent == null.
不知有多少家长。我用它来打印 A* 算法的路径。在x(state currentnode)满足目标后,我一直在打印路径,我打印了它的子节点的所有actionfromparents。
System.out.println(x.actionFromParent);
System.out.println(x.parent.actionFromParent);
System.out.println(x.parent.parent.actionFromParent);
System.out.println(x.parent.parent.parent.actionFromParent);
.....
until (x.parent.parent.parent.....parent.actionFromParent == null)
这就是你想要的:
while(x.parent.actionFromParent != null){
System.out.println(x.actionFromParent);
System.out.println(x.parent.actionFromParent);
x = x.parent;
}
您可以使用 while
循环或递归函数。
使用 while
循环:
State x = theState;
while (x != null && x.actionFromParent != null) {
System.out.println(x.actionFromParent);
x = x.parent;
}
用递归函数:
public static void printActionsFromParent(State x) {
if (x != null && x.actionFromParent != null) {
System.out.println(x.actionFromParent);
printActionsFromParent(x.parent);
}
}