Mengisih Struktur Data Kompleks dengan Pelbagai Peringkat Kepingan Kanak-kanak
Artikel ini meneroka kaedah untuk mengatur struktur data kompleks yang melibatkan kepingan dan sub-kepingan dengan mematuhi pelbagai keperluan pengisihan. Pertimbangkan senario berikut:
Struktur Data Input:
Sepotong struct Induk:
type Parent struct { id string children []Child }
Setiap Ibu Bapa mempunyai sekeping struct Anak:
type Child struct { id string }
Matlamat Isih:
Output yang Diingini:
[{1 [{7} {8} {9}]} {2 [{4} {5} {6}]} {3 [{1} {2} {3}]}]
Pelaksanaan:
Untuk mencapai matlamat pengisihan ini, langkah berikut diambil:
Isih Induk Induk:
sort.Slice(parents, func(i, j int) bool {return parents[i].id < parents[j].id})
Barisan ini mengisih kepingan ibu bapa dalam tertib menaik medan id mereka menggunakan fungsi isihan terbina dalam.Slice.
Isih Hirisan Anak :
for _, parent := range parents { sort.Slice(parent.children, func(i, j int) bool {return parent.children[i].id < parent.children[j].id}) }
Gelung ini berulang pada setiap induk dalam hirisan ibu bapa yang diisih dan menggunakan contoh isihan yang lain.Slice untuk mengisih kepingan kanak-kanak setiap ibu bapa dalam tertib menaik medan id mereka.
Dengan mengikuti langkah-langkah ini, struktur data yang kompleks boleh diisih dengan berkesan untuk memenuhi keperluan pengisihan yang ditentukan, menghasilkan format output yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Struktur Data Kompleks dengan Pelbagai Tahap Kepingan Kanak-kanak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!