データベースは通常、ツリーをリスト (id、pid) の形式で保存することがわかっています。このツリーを抽出するにはどうすればよいですか?最も簡単な方法は、pid に基づいてループ内でテーブルを検索することです。しかし、これによってデータベース クエリのオーバーヘッドが膨大になることは間違いありません。
一般的に推奨される方法は、関連するすべてのデータを一度に見つけることですが、これにはツリーを迅速に構築する方法という問題が伴います。
これは少なくとも 1 回の再帰を必要とする複雑な操作であり、時間計算量は O(n) にならないだろうと常に考えていました。
少し前、仕事の要件があり、この問題を解決する必要がありました。注意深く考えてみたところ、この問題は次のように単層ループで解決できることがわかりました。
リーリーテストしてみましょう:
リーリー結果:
リーリーリストをツリーに変換しました