[pgsql-jp: 25171] Re: 親子関係をSELECT する
sugita @ sra.co.jp
sugita @ sra.co.jp
2002年 3月 8日 (金) 21:42:23 JST
杉田です。
From: sugita @ sra.co.jp
Subject: [pgsql-jp: 25163] Re: 親子関係をSELECT する
Date: Fri, 08 Mar 2002 16:57:18 +0900 (JST)
;;; ;;; > その 3)
;;; ;;; > 全ノードがユニークに生成順を識別できるならば、ノードの親の生成順とノー
;;; ;;; > ドの生成順でソートすることで、幅探索の結果順で SELECT 可能です。
;;; ;;;
;;; ;;; 幅検索とは具体的にどのようにするのでしょうか。
;;;
;;; 幅検索は幅優先の間違いでした。この探索は、今回は役に立ちませんので蛇足でした。
ひとつ忘れました。
結果のデータ量が少ないならば、幅優先探索の結果から Oracle の深さ優先行きがけ
順での探索への変換は C/Tcl/Perl などのユーザ定義関数で 1 パスで簡単にできます。
# 7.1 でならばこうすればできますが、7.2 にした方が簡明ではないかと思います。
;;; ・A001
;;; └A001-01
;;; |└A001-01-01
;;; | └A001-01-01-01
;;; └A001-02
;;;
;;; の場合に、A001、A001-01、A001-02、A001-01-01、A001-01-01-01 の順に木構造を探索
;;; することが、幅優先探索 (横優先探索) です。アルゴリズム本の木構造の辺りに書かれ
;;; ています。
Kenji Sugita
sugita @ sra.co.jp
pgsql-jp メーリングリストの案内