Pengenalan:
Membina struktur seperti pokok daripada tatasusunan rentetan laluan boleh mencabar, tetapi dengan teknik yang sesuai, ia boleh dicapai dengan cekap.
Penyelesaian:
Penyelesaian yang disediakan menggunakan fungsi rekursif, AddToTree , yang mengambil sebagai input senarai nod yang mewakili keadaan semasa pepohon dan segmen laluan yang tinggal untuk ditambahkan. Algoritma berjalan seperti berikut:
Snippet Kod:
<code class="go">func AddToTree(root []Node, names []string) []Node { if len(names) > 0 { var i int for i = 0; i < len(root); i++ { if root[i].Name == names[0] { //already in tree break } } if i == len(root) { root = append(root, Node{Name: names[0]}) } root[i].Children = AddToTree(root[i].Children, names[1:]) } return root }</code>
Kelebihan Penyelesaian:
Contoh Output:
The kod menjana output berikut:
[{ "name": "a", "children": [{ "name": "b", "children": [{ "name": "c" }, { "name": "g" }] }, { "name": "d" }] }]
Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar tatasusunan rentetan laluan menjadi struktur seperti pokok?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!