有一个有序的业务流程图,有明确的开始节点startNode和结束节点endNode。从开始节点开始,每个节点都有自己的子节点,同时子节点的数量不确定。所有的节点自上往下有序流转,最后在endNode节点结束。用java编写一个递归函数,从开始节点遍历获取其下的所有子节点
时间: 2024-03-06 20:50:35 浏览: 24
好的,以下是用 Java 编写的递归函数,可以从开始节点开始遍历业务流程图并获取其下的所有子节点:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class OrderedProcess {
private static Map<String, List<String>> processMap = new HashMap<>();
static {
processMap.put("startNode", List.of("A1", "A2", "A3"));
processMap.put("A1", List.of("B1", "B2"));
processMap.put("A2", List.of("C1"));
processMap.put("A3", List.of("D1", "D2", "D3"));
processMap.put("B1", List.of("E1", "E2"));
processMap.put("B2", List.of("F1"));
processMap.put("D1", List.of("G1", "G2", "G3"));
processMap.put("D2", List.of("H1", "H2"));
processMap.put("D3", List.of("I1"));
processMap.put("G1", List.of("endNode"));
processMap.put("G2", List.of("J1"));
processMap.put("J1", List.of("K1"));
processMap.put("K1", List.of("endNode"));
processMap.put("H1", List.of("L1", "L2"));
processMap.put("L2", List.of("endNode"));
processMap.put("I1", List.of("endNode"));
}
public static void main(String[] args) {
String startNode = "startNode";
String endNode = "endNode";
List<String> childNodes = new ArrayList<>();
getChildNodes(startNode, endNode, childNodes);
System.out.println("Child nodes of " + startNode + ":");
for (String childNode : childNodes) {
System.out.println(childNode);
}
}
public static void getChildNodes(String currentNode, String endNode, List<String> childNodes) {
if (currentNode.equals(endNode)) {
return;
}
List<String> nextNodes = processMap.get(currentNode);
if (nextNodes != null) {
for (String nextNode : nextNodes) {
getChildNodes(nextNode, endNode, childNodes);
childNodes.add(nextNode);
}
}
}
}
```
你可以将 `startNode` 替换为你业务流程图的开始节点名称,将 `endNode` 替换为你业务流程图的结束节点名称。这个函数会递归遍历业务流程图并获取从开始节点到结束节点之间的所有子节点名称。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)