首頁 >後端開發 >Golang >如何將路徑字串陣列轉換為樹狀結構?

如何將路徑字串陣列轉換為樹狀結構?

Patricia Arquette
Patricia Arquette原創
2024-10-27 04:42:29551瀏覽

How can I convert a path string array into a tree-like structure?

將路徑字串陣列轉換為樹狀結構

簡介:

構造樹狀結構路徑字串陣列可能具有挑戰性,但透過適當的技術,可以有效地實現。

解決方案:

提供的解決方案採用遞歸函數 AddToTree ,它將表示樹的當前狀態和要添加的剩餘路徑段的節點列表作為輸入。演算法進行如下:

  1. 檢查目前路徑段(路徑的第一個元素)是否已經作為目前根的子節點存在。
  2. 如果沒有找到,則建立以目前路徑段為名稱的新節點,並將其新增為目前根的子節點。
  3. 在剩餘路徑段上遞歸呼叫 AddToTree,使用新建立的子節點作為新根。

程式碼片段:

<code class="go">func AddToTree(root []Node, names []string) []Node {
    if len(names) > 0 {
        var i int
        for i = 0; i <p><strong>解的優點:</strong></p>
<ul>
<li>解決方案的優點:<strong></strong>
</li>
<li>
<strong></strong>可重用性: </li> 此函數可以重複應用以將多個路徑字串新增至樹中。 <li>
<strong></strong>完整性:</li> 透過在新增之前檢查現有節點來避免樹中的重複節點。 </ul> <p><strong>效率:</strong>遞歸確保函數僅在樹中必要的節點上運行。 </p>
<p></p>
<pre class="brush:php;toolbar:false">[{
    "name": "a",
    "children": [{
        "name": "b",
        "children": [{
            "name": "c"
        }, {
            "name": "g"
        }]
    }, {
        "name": "d"
    }]
}]
範例輸出:程式碼產生以下輸出:

以上是如何將路徑字串陣列轉換為樹狀結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn