我有一個玫瑰樹結構,我用Data.Tree表示。樹中的每個節點都標有(x,y)座標。我需要實現一種方法來查找樹中最接近給定查詢座標的節點,並向該節點添加一個子節點。用Data.Tree.Zipper遍歷玫瑰樹
我設想將這種成兩個操作:
遍歷樹找到最接近給定查詢座標
採取事先遍歷找到的節點,並添加到節點它是一個孩子與上述查詢座標
我能想到這樣做的唯一方法是在第1步中使用Data.Tree遍歷樹.Zipper,然後在步驟2中使用該拉鍊將節點插入特定位置。
我有兩個問題:
這是解決這個問題的有效途徑?
如果是這樣,我該如何使用Data.Tree.Zipper中的函數來實現上面的第1步?我發現樹遍歷很難實現,因爲它需要在兩個維度上進行遞歸:深度和廣度。
告訴我們關於第1步的更多信息。樹是否以任何方式組織? –
就此問題而言,沒有任何兒童或父母與子女之間的相關關係。我對執行完整的樹遍歷來搜索最近的節點感到滿意。 – giogadi