[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 メーリングリストの案内