在Java程序中,經常需要查詢某一節點的父級或者子級。下面我們就來介紹如何在Java中查詢父級和子級。
首先,我們需要定義一個節點類,如下所示:
public class Node { private int id; private String name; private Node parent; private Listchildren; public Node(int id, String name, Node parent) { this.id = id; this.name = name; this.parent = parent; this.children = new ArrayList<>(); } public void addChild(Node child) { children.add(child); } // getters and setters omitted for brevity }
該節點類有一個id和name屬性,一個parent屬性表示父節點,一個children屬性表示子節點。
那么如何查詢某一節點的父級呢?我們可以通過遞歸實現,實現方法如下:
public Node findParent(Node node) { if (node.getParent() == null) { return null; } else { return node.getParent(); } }
上述方法通過判斷某一節點的parent屬性是否為null,來確定該節點是否為根節點。如果該節點是根節點,返回null,否則返回該節點的父節點。
接下來,我們來看如何查詢某一節點的子級。同樣可以通過遞歸實現,實現方法如下:
public ListfindChildren(Node node) { List children = new ArrayList<>(); for (Node child : node.getChildren()) { findChildren(child); children.add(child); } return children; }
上述方法采用了深度優先遍歷的方式遍歷該節點的所有子節點,并遞歸調用findChildren()方法。
總結一下,在Java程序中查詢父級和子級可以通過遞歸的方式來實現,遞歸需要注意遞歸出口條件和遞歸調用方法。