簡體   English   中英

如何在給定路徑的樹中查找節點

[英]How to find a node in a tree given a path

我在Java中有一個TreeModel,並提供了一條路徑來檢查該路徑是否存在。 例如,/ dir1 / dir2 / dir3 /是我樹中的現有路徑。 我的樹不是二進制的。 我將如何處理? 我的想法是讓函數采用DefaultMutableTreeNode,然后檢查節點的名稱是否與路徑中的第一個目錄相同,以此類推。 我的問題是如何遞歸地更改到下一個字符串和下一個節點。 如果我的函數是遞歸的,迭代的等等。任何幫助都將非常有用! 提前致謝。

假設您有一棵典型的樹,其中路徑的每個元素都是下一個節點的關鍵,那么在根節點上調用該樹應該可以:

public boolean hasPath(String path) {
    Node node = this;
    for (String key : path.split("/")) {
        node = node.get(key);
        if (node == null)
            return false;
    }
    return true;
}

它是迭代的,因此比沿着遞歸的兔子洞更容易理解。 效率也更高。

您可以執行此操作將所有子節點從根目錄保存並處理到堆棧中,然后開始彈出每個子節點並對其進行遞歸操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM