[英]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.