JP4537391B2 - ツリー型データ構造を取り扱う方法、情報処理装置、及び、プログラム - Google Patents
ツリー型データ構造を取り扱う方法、情報処理装置、及び、プログラム Download PDFInfo
- Publication number
- JP4537391B2 JP4537391B2 JP2006510978A JP2006510978A JP4537391B2 JP 4537391 B2 JP4537391 B2 JP 4537391B2 JP 2006510978 A JP2006510978 A JP 2006510978A JP 2006510978 A JP2006510978 A JP 2006510978A JP 4537391 B2 JP4537391 B2 JP 4537391B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- parent
- nodes
- array
- child
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99948—Application of database or data structure, e.g. distributed, multimedia, or image
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
ルート・ノードを含むノードに固有のノード識別子を付与するノード定義ステップと、
前記ルート・ノード以外のノードである非ルート・ノードの各々に付与されたノード識別子に、前記非ルート・ノードの各々の親ノードに付与されたノード識別子を関連付ける親子関係定義ステップと、
を含む。このように、最初に、文字列、浮動小数、整数などの任意の識別情報によってノードにノード識別子を付与し、次に、「子→親」表現に基づいて親子関係を定義することによって、子ノードのノード識別子から親ノードのノード識別子を引く(ルックアップする)ことでツリーのトポロジーを表現することができる。
同じ世代のノードよりも子ノードを優先して、ルート・ノードを含むノードに固有の連続する整数を付与するノード定義ステップと、
前記ルート・ノード以外のノードである非ルート・ノードの各々に付与された整数の順に、前記非ルート・ノードの各々の親ノードに付与された整数を並べることにより形成される配列を前記記憶装置に格納する親子関係定義ステップと、
を含む。これにより、ノードは深さ優先で連続整数が付与され、ノード間の親子関係は「子→親」関係の配列によって表現される。深さ優先で連続番号が付与されたノードの親子関係を「子→親」関係に基づいて配列表現すると、あるノードの子孫ノードが連続領域に出現するという優れた性質が得られる。
前記ノード定義ステップは、
最初にルート・ノードに番号を付与するステップと、
既に番号が付与されたあるノードに唯一の子ノードが存在する場合には、当該子ノードに当該あるノードに付与された前記番号の次の番号を付与するステップと、
既に番号が付与されたあるノードに複数の子ノードが存在する場合には、当該複数の子ノードの間の兄弟関係に従って、弟ノードは直上の兄ノードの全ての子孫ノードに番号が付与された後に次の番号が付与されるように、一番上の兄ノードから一番下の弟ノードまで番号を付与するステップと、
を含む。これにより、深さ優先モードで同一の親ノードから派生した複数の子ノードの間に兄弟関係が定義される。
子ノードよりも同じ世代のノードを優先して、ルート・ノードを含むノードに固有の連続する整数を付与するノード定義ステップと、
前記ルート・ノード以外のノードである非ルート・ノードの各々に付与された整数の順に、前記非ルート・ノードの各々の親ノードに付与された整数を並べることにより形成される配列を前記記憶装置に格納する親子関係定義ステップと、
を含む。これにより、ノードは幅優先モードで連続整数が付与され、ノード間の親子関係は「子→親」関係の配列によって表現される。幅優先モードで連続番号が付与されたノードの親子関係を「子→親」関係に基づいて配列表現すると、親ノードに付与された番号が前記配列中に順序付き(昇順又は降順)で出現するという優れた性質が得られる。
前記ノード定義ステップは、
各ノードが前記ルート・ノードから何世代目のノードであるか、及び、各世代に含まれるノード数を算出するステップと、
最初に前記ルート・ノードに番号を付与するステップと、
ある世代に含まれる全てのノードに番号が付与されたならば、当該ある世代の次の世代にノードが存在しなくなるまで、当該次の世代に含まれる全てのノードに対して、親ノードが異なる場合には、当該親ノードに番号が付与された順番に当該ノードに番号を付与し、当該親ノードが同一である場合には、当該親ノードから派生した複数の子ノードの間に兄弟関係を定義し、一番上の兄ノードから一番下の弟ノードまで直前に付与された番号の次の番号から連続的に変化する固有の整数を順に付与するステップと、
を含む。これにより、幅優先モードで同一の親ノードから派生した複数の子ノードの間に兄弟関係が定義される。
ルート・ノードから始めて全てのノードに連続的に変化する整数を一意に割り当てるステップと、
ノード間に親子関係を定義するステップと、
を含み、
前記全てのノードに整数を一意に割り当てるステップは、
同じ世代のノードよりも子ノードを優先して番号を付与する深さ優先モードと、子ノードよりも同じ世代のノードを優先して番号を付与する幅優先モードのどちらのモードでノードに番号を付与するかを選択するステップと、
前記深さ優先モードが選択された場合に、深さ優先でノードを検索し、検索された順にノードに番号を付与するステップと、
前記幅優先モードが選択された場合に、幅優先でノードを検索し、検索された順にノードに番号を付与するステップと、
を含み、
前記ノード間に親子関係を定義するステップは、子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号を前記記憶装置に格納するステップを含む。これにより、深さ優先モードによるノード番号付与と幅優先モードによるノード番号付与を一つのシステムに併存させることができるので、状況に応じて適切な表現形式を利用することが可能である。
前記ノード間に親子関係を定義するステップは、
子ノードから親ノードへの関係を定義する子親表現モードと、親ノードから子ノードへの関係を定義する親子表現モードのどちらのモードで親子関係を定義するかを選択するステップと、
前記子親表現モードが選択された場合に、子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号を前記記憶装置に格納するステップと、
前記親子表現モードが選択された場合に、親ノードに付与された番号の順に、当該親ノードに対応する子ノードに付与された番号の配列を前記記憶装置に格納するステップと、
を含む。これにより、「子→親」関係で表現されているノード間の親子関係を、状況に応じて、「親→子」関係で表現することが可能になる。「親→子」関係に基づく表現は、例えば、外部との情報交換の際に有利である。
前記親子関係は、子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号を前記記憶装置に格納することにより定義され、
同じ世代のノードよりも子ノードを優先してノードに番号を付与する深さ優先モードで表現されたツリー型データ構造の各ノードの世代を判定し、世代毎に属しているノードの個数を計数するステップと、
前記世代毎に属しているノードの個数に基づいて、子ノードよりも同じ世代のノードを優先してノードに番号を付与する幅優先モードで番号を付与する際に各世代において付与される番号を決定するステップと、
前記判定されたノードの世代及び前記決定された各世代において付与される番号に基づいて、前記各ノードの番号を前記幅優先モードで付与される番号に変換する変換配列を作成するステップと、
前記各ノードの前記親子関係を、前記変換配列を使用して前記幅優先モードで付与される番号で表現された親子関係に変換するステップと、
を有する。これにより、深さ優先モードに基づく「子→親」表現形式から幅優先モードに基づく「子→親」表現形式への変換が可能になる。
前記親子関係は、子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号を前記記憶装置に格納することにより定義され、
子ノードよりも同じ世代のノードを優先してノードに番号を付与する幅優先モードで表現されたツリー型データ構造の各ノードの子孫の数を計数するステップと、
親ノードに付与されるべき番号に、当該ノードと同一の親ノードから派生した兄弟ノードのうち当該ノードよりも前に番号が付与されている兄ノードの数及び当該兄ノードの子孫の数を加算することにより、前記幅優先モードで付与された番号を、同じ世代のノードよりも子ノードを優先してノードの番号を付与する深さ優先モードで付与される番号に変換する変換配列を作成するステップと、
前記各ノードの前記親子関係を、前記変換配列を使用して前記深さ優先モードで付与される番号で表現された親子関係に変換するステップと、
を有する。これにより、幅優先モードに基づく「子→親」表現形式から深さ優先モードに基づく「子→親」表現形式への高速変換が可能になる。
前記親子関係が、子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号を前記記憶装置に格納することにより定義され、
子ノードよりも同じ世代のノードを優先してノードに番号を付与する幅優先モードで表現されたツリー型データ構造の各ノードを深さ優先で検索し、前記幅優先モードで付与された番号を、同じ世代のノードよりも子ノードを優先してノードの番号を付与する深さ優先モードで付与される番号に変換する変換配列を作成するステップと、
前記各ノードの前記親子関係を、前記変換配列を使用して前記深さ優先モードで付与される番号で表現された親子関係に変換するステップと、
を有する。これにより、幅優先モードに基づく「子→親」表現形式から深さ優先モードに基づく「子→親」表現形式への検索に基づく変換が可能になる。「深さ優先」検索は、例えば、スタックを使用して番号変換配列を作成することにより実現される。
前記親子関係は、子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号を第1の配列の要素として前記記憶装置に格納することにより定義され、
各ノードに関して、当該ノードに付与された番号が前記第1の配列の要素として出現する回数を計数するステップと、
前記各ノードに関して当該ノードに対応する子ノードに付与された番号を格納するため、前記計数された回数に応じた個数の連続領域を前記記憶領域に第2の配列として確保するステップと、
前記第1の配列の要素を順次に読み出し、当該要素と値が一致する番号が付与されたノードのために確保された前記第2の配列の要素として、前記第1の配列の要素に対する子ノードの番号を順次に格納するステップと、
を有する。これにより、親子関係は、「子→親」表現形式から「親→子」表現形式に変換される。即ち、変換後の親子関係は、親ノードに付与された番号の順に、当該親ノードに対応する子ノードに付与された番号を前記第2の配列の要素として前記記憶装置に格納することにより定義される。
前記親子関係が、親ノードに付与された番号の順に、当該親ノードに対応する子ノードに付与された番号を第1の配列の要素として前記記憶装置に格納することにより定義され、
子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号を格納するため、前記記憶装置に第2の配列を確保するステップと、
前記第1の配列の要素を順次に読み出し、当該要素と値が一致する番号が付与されたノードのために確保された前記第2の配列の要素として、前記第1の配列の要素に対する親ノードの番号を順次に格納するステップと、
を有する。これにより、親子関係は、「親→子」表現形式から「子→親」表現形式に変換される。即ち、変換後の親子関係は、子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号を前記第2の配列の要素として前記記憶装置に格納することにより定義される。
図1は、本発明の実施の形態にかかるツリー型データ構造を取り扱うコンピュータシステムのハードウェア構成を示すブロックダイヤグラムである。図1に示すように、このコンピュータシステム10は、通常のものと同様の構成であり、プログラムを実行することによりシステム全体および個々の構成部分を制御するCPU12、ワークデータなどを記憶するRAM(Random Access Memory)14、プログラム等を記憶するROM(Read Only Memory)16、ハードディスク等の固定記憶媒体18、CD−ROM19をアクセスするためのCD−ROMドライバ20、CD−ROMドライバ20や外部ネットワーク(図示せず)と接続された外部端子との間に設けられたインタフェース(I/F)22、キーボードやマウスからなる入力装置24、CRT表示装置26を備えている。CPU12、RAM14、ROM16、外部記憶媒体18、I/F22、入力装置24および表示装置26は、バス28を介して相互に接続されている。
図2A、Bは、ツリー形式データの一例であるPOSデータの説明図であり、図2Aは、このツリー形式データのデータ構造(即ち、トポロジー)及びデータ値を視覚的に表現した一例であり、図2Bは、同じツリー形式データをXML形式で表現した一例である。同図に示されるようにツリー型データ構造は、ルート・ノード(本例では、POSデータ)から始めて、各ノードで枝分かれしてリーフ・ノード(端点)に至るノードとアークの組み合わせによって表現される。各ノードの実体的な値、例えば、店名ノードの値="フランス店"の格納場所は、店名ノードに関連したポインタで指定される。
図3A〜Cの例では、アークリストは、親ノードに子ノードを対応付ける「親→子」関係に基づいて記述されている。そのため、一つの親ノード、例えば、ルート・ノード0には、3個の子ノード10、60及び80が存在するため、アークリストのFrom−IDには、同じノードIDの0が3回出現している。つまり、親ノードを特定しても子ノードを特定することができないので、アークリストは、要素From−IDの配列と要素To−IDの配列により構成される。アークリストを使用する場合、あるノードは、From−IDの配列と、To−IDの配列の両方の配列に出現する。
好ましい一実施例によれば、ノード定義ステップはノード識別子として数値を使用し、より好ましくは、連続する整数を使用し、更に好ましくは、0又は1からの整数連番を使用する。これにより、ノード識別子から、そのノードに対応する親ノードのノード識別子が格納されているアドレスを簡単に取得することができるので、子ノードのノード識別子から親ノードのノード識別子を引く処理を高速化することができる。
本発明の一実施例によれば、図6A〜Cに示されるような深さ優先に基づくツリー型データ構造は、図1に示されたコンピュータシステム10に、
同じ世代のノードよりも子ノードを優先して、ルート・ノードを含むノードに固有の連続する整数を付与するノード定義ステップと、
ルート・ノード以外のノードである非ルート・ノードの各々に付与された整数の順に、非ルート・ノードの各々の親ノードに付与された整数を並べることにより形成される配列を前記記憶装置に格納する親子関係定義ステップと、
を実行させることによって、記憶装置上に構築される。これにより、ノードは深さ優先で連続整数が付与され、ノード間の親子関係は「子→親」関係の配列によって表現される。
最初にルート・ノードに番号を付与するステップ801と、
既に番号が付与されたあるノードに唯一の子ノードが存在する場合には、当該子ノードに当該あるノードに付与された前記番号の次の番号を付与するステップ802と、
既に番号が付与されたあるノードに複数の子ノードが存在する場合には、当該複数の子ノードの間の兄弟関係に従って、弟ノードは直上の兄ノードの全ての子孫ノードに番号が付与された後に次の番号が付与されるように、一番上の兄ノードから一番下の弟ノードまで番号を付与するステップ803と、
を実行させる。これにより、深さ優先モードで同一の親ノードから派生した複数の子ノードの間に兄弟関係が定義される。
(1)ノードの番号が配列P→Cの最大の添字(=11)と一致する場合、このノードに属する子ノードは存在しない。したがって、処理は継続されない。
(2)同図に太字で表された親ノードの番号からAggr値を求める。このAggr値は、配列P→Cの開始点を表す。
(3)太字で表された親ノード番号+1に対応するAggr値を求める。このAggr値−1が配列P→Cの終了点である。
本発明の一実施例によれば、図7A〜Cに示されるような幅優先に基づくツリー型データ構造は、図1に示されたコンピュータシステム10に、
子ノードよりも同じ世代のノードを優先して、ルート・ノードを含むノードに固有の連続する整数を付与するノード定義ステップと、
前記ルート・ノード以外のノードである非ルート・ノードの各々に付与された整数の順に、前記非ルート・ノードの各々の親ノードに付与された整数を並べることにより形成される配列を前記記憶装置に格納する親子関係定義ステップと、
を実行させることによって、記憶装置上に構築される。これにより、ノードは幅優先モードで連続整数が付与され、ノード間の親子関係は「子→親」関係の配列によって表現される。
各ノードが前記ルート・ノードから何世代目のノードであるか、及び、各世代に含まれるノード数を算出するステップ1101と、
最初に前記ルート・ノードに番号を付与するステップ1102と、
ある世代に含まれる全てのノードに番号が付与されたならば、当該ある世代の次の世代にノードが存在しなくなるまで、当該次の世代に含まれる全てのノードに対して、親ノードが異なる場合には、当該親ノードに番号が付与された順番に当該ノードに番号を付与し、当該親ノードが同一である場合には、当該親ノードから派生した複数の子ノードの間に兄弟関係を定義し、一番上の兄ノードから一番下の弟ノードまで直前に付与された番号の次の番号から連続的に変化する固有の整数を順に付与するステップ1013と、
を実行させる。これにより、幅優先モードで同一の親ノードから派生した複数の子ノードの間に兄弟関係が定義される。
(1)ノードの番号が配列P→Cの最大の添字(=11)と一致する場合、このノードに属する子ノードは存在しない。したがって、処理は継続されない。
(2)同図に太字で表された親ノードの番号からAggr値を求める。このAggr値は、配列P→Cの開始点を表す。
(3)太字で表された親ノード番号+1に対応するAggr値を求める。このAggr値−1が配列P→Cの終了点である。
上述のように、ノードに連続番号を付与するための深さ優先モード及び幅優先モードは、それぞれ、固有の優れた性質を備えている。そこで、本発明の一実施例によるコンピュータシステムは、深さ優先に基づく「子→親」表現形式と、幅優先に基づく「子→親」表現形式と、「親→子」表現形式と、の間で相互に表現形式を変換する。図14は、本発明の一実施例による三つの表現形式の相互変換の関係を示す図である。
同じ世代のノードよりも子ノードを優先して番号を付与する深さ優先モードと、子ノードよりも同じ世代のノードを優先して番号を付与する幅優先モードのどちらのモードでノードに番号を付与するかを選択するステップ1511と、
前記深さ優先モードが選択された場合に、深さ優先でノードを検索し、検索された順にノードに番号を付与するステップ1512と、
前記幅優先モードが選択された場合に、幅優先でノードを検索し、検索された順にノードに番号を付与するステップ1513と、
を含む。これにより、深さ優先モードによるノード番号付与と幅優先モードによるノード番号付与を一つのシステムに併存させることができるので、状況に応じて適切な表現形式を利用することが可能である。
子ノードから親ノードへの関係を定義する子親表現モードと、親ノードから子ノードへの関係を定義する親子表現モードのどちらのモードで親子関係を定義するかを選択するステップ1521と、
前記子親表現モードが選択された場合に、子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号を前記記憶装置に格納するステップ1522と、
前記親子表現モードが選択された場合に、親ノードに付与された番号の順に、当該親ノードに対応する子ノードに付与された番号の配列を前記記憶装置に格納するステップ1523と、
を含む。これにより、「子→親」関係で表現されているノード間の親子関係を、状況に応じて、「親→子」関係で表現することが可能になる。「親→子」関係に基づく表現は、例えば、外部との情報交換の際に有利である。
図16A、Bは、本発明の一実施例による深さ優先「子→親」表現(図16A)から、幅優先「子→親」表現(図16B)への変換の説明図である。図17は、この本発明の一実施例による深さ優先「子→親」表現から幅優先「子→親」表現への変換方法のフローチャートである。親子関係は、子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号をコンピュータシステム10の記憶装置、例えば、RAM14に格納することにより定義されている。図17に示されるように、コンピュータシステム10は、
同じ世代のノードよりも子ノードを優先してノードに番号を付与する深さ優先モードで表現されたツリー型データ構造の各ノードの世代を判定し、世代毎に属しているノードの個数を計数するステップ1701と、
前記世代毎に属しているノードの個数に基づいて、子ノードよりも同じ世代のノードを優先してノードに番号を付与する幅優先モードで番号を付与する際に各世代において付与される番号を決定するステップ1702と、
前記判定されたノードの世代及び前記決定された各世代において付与される番号に基づいて、前記各ノードの番号を前記幅優先モードで付与される番号に変換する変換配列を作成するステップ1703と、
前記各ノードの前記親子関係を、前記変換配列を使用して前記幅優先モードで付与される番号で表現された親子関係に変換するステップ1704と、
を実行する。これにより、深さ優先モードに基づく「子→親」表現形式から幅優先モードに基づく「子→親」表現形式への変換が可能になる。
1→1
3→1+3=4
4→4+4=8
4→8+4=12
0→12+0=12
により、(1,4,8,12,12)のようになる。この累計数から明らかであるように、世代0までのノード数は1個であり、世代1までのノード数は4個であり、世代2までのノード数は8個であり、世代3までのノード数は12個であり、世代4までのノード数は12個である。ここから、世代順にノードを並べた場合、世代0の先頭ノードは全体で0番目であり、世代1の先頭ノードは全体で1番目のノードであり、世代2の先頭ノードは全体で4番目のノードであり、世代3の先頭ノードは全体で8番目のノードであり、世代4の先頭ノードは全体で12番目のノードであることがわかる。このように、世代毎のノード個数の配列depth−countの要素を累計数化することにより、世代順にノードを並べた場合の各世代の先頭ノードが全体で何番目のノードであるかを示す配列depth−aggrが得られる。尚、好ましい一実施例では、配列depth−aggrは、(1,4,8,12,12)そのままではなく、先頭に0を詰め、要素を一つずつ後へずらすことにより得られる配列(0,1,4,8,12)によって与えられる。この配列depth−aggrは、幅優先モードで番号を付与する際に各世代において付与される番号を表している。
格納位置の変換後の配列C→P[0]には、深さ優先による配列C→P[0]の値−1がセットされ、
格納位置の変換後の配列C→P[1]には、深さ優先による配列C→P[1]の値0がセットされ、
格納位置の変換後の配列C→P[2]には、深さ優先による配列C→P[6]の値0がセットされ、
格納位置の変換後の配列C→P[3]には、深さ優先による配列C→P[8]の値0がセットされ、
格納位置の変換後の配列C→P[4]には、深さ優先による配列C→P[2]の値1がセットされ、
格納位置の変換後の配列C→P[5]には、深さ優先による配列C→P[5]の値1がセットされ、
格納位置の変換後の配列C→P[6]には、深さ優先による配列C→P[7]の値6がセットされ、
格納位置の変換後の配列C→P[7]には、深さ優先による配列C→P[9]の値8がセットされ、
格納位置の変換後の配列C→P[8]には、深さ優先による配列C→P[3]の値2がセットされ、
格納位置の変換後の配列C→P[9]には、深さ優先による配列C→P[4]の値2がセットされ、
格納位置の変換後の配列C→P[10]には、深さ優先による配列C→P[10]の値9がセットされ、
格納位置の変換後の配列C→P[11]には、深さ優先による配列C→P[11]の値9がセットされる。
図30A、Bは、それぞれ、本発明の一実施例による幅優先「子→親」表現(図30A)から深さ優先「子→親」表現(図30B)への変換の説明図である。図31は、この本発明の一実施例による幅優先「子→親」表現から深さ優先「子→親」表現への変換方法のフローチャートである。親子関係は、子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号をコンピュータシステム10の記憶装置、例えば、RAM14に格納することにより定義されている。図31に示されるように、コンピュータシステム10は、
子ノードよりも同じ世代のノードを優先してノードに番号を付与する幅優先モードで表現されたツリー型データ構造の各ノードの子孫の数を計数するステップ3101と、
親ノードに付与されるべき番号に、当該ノードと同一の親ノードから派生した兄弟ノードのうち当該ノードよりも前に番号が付与されている兄ノードの数及び当該兄ノードの子孫の数を加算することにより、前記幅優先モードで付与された番号を、同じ世代のノードよりも子ノードを優先してノードの番号を付与する深さ優先モードで付与される番号に変換する変換配列を作成するステップ3102と、
前記各ノードの前記親子関係を、前記変換配列を使用して前記深さ優先モードで付与される番号で表現された親子関係に変換するステップ3103と、
を実行する。これにより、幅優先モードに基づく「子→親」表現形式から深さ優先モードに基づく「子→親」表現形式への高速変換が可能になる。
本発明の他の一実施例によれば、幅優先「子→親」表現から深さ優先「子→親」表現への変換は、図30A乃至図35に関して説明した高速変換方法の他に、検索を利用した変換方法によっても実現できる。以下では、図30A、Bに示された例を用いて、この検索を利用した変換方法を説明する。
子ノードよりも同じ世代のノードを優先してノードに番号を付与する幅優先モードで表現されたツリー型データ構造の各ノードを深さ優先で検索し、前記幅優先モードで付与された番号を、同じ世代のノードよりも子ノードを優先してノードの番号を付与する深さ優先モードで付与される番号に変換する変換配列を作成するステップと、
前記各ノードの前記親子関係を、前記変換配列を使用して前記深さ優先モードで付与される番号で表現された親子関係に変換するステップと、
を実行する。
次に、本発明の一実施例による子ノードに親ノードを対応付ける「子→親」関係から親ノードに子ノードを対応付ける「親→子」関係への変換方法を説明する。
各ノードに関して、当該ノードに付与された番号が前記第1の配列の要素として出現する回数を計数するステップ4401と、
前記各ノードに関して当該ノードに対応する子ノードに付与された番号を格納するため、前記計数された回数に応じた個数の連続領域を前記記憶領域に第2の配列として確保するステップ4402と、
前記第1の配列の要素を順次に読み出し、当該要素と値が一致する番号が付与されたノードのために確保された前記第2の配列の要素として、前記第1の配列の要素に対する子ノードの番号を順次に格納するステップ4403と、
を実行する。これにより、親子関係は、「子→親」表現形式から「親→子」表現形式に変換される。即ち、変換後の親子関係は、親ノードに付与された番号の順に、当該親ノードに対応する子ノードに付与された番号を前記第2の配列の要素として前記記憶装置に格納することにより定義される。
次に、本発明の一実施例による親ノードに子ノードを対応付ける「親→子」関係から子ノードに親ノードを対応付ける「子→親」関係への変換方法を説明する。
子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号を格納するため、前記記憶装置に第2の配列を確保するステップ4801と、
前記第1の配列の要素を順次に読み出し、当該要素と値が一致する番号が付与されたノードのために確保された前記第2の配列の要素として、前記第1の配列の要素に対する親ノードの番号を順次に格納するステップ4802と、
を実行する。これにより、親子関係は、「親→子」表現形式から「子→親」表現形式に変換される。即ち、変換後の親子関係は、子ノードに付与された番号の順に、当該子ノードに対応する親ノードに付与された番号を前記第2の配列の要素として前記記憶装置に格納することにより定義される。
図50は、本発明の一実施例によるツリー型データ構造を構築する情報処理装置5000のブロック図である。情報処理装置5000は、ツリー型データ構造を表現するデータを記憶する記憶部5001と、ルート・ノードを含むノードに固有のノード識別子を付与するノード定義部5002と、前記ルート・ノード以外のノードである非ルート・ノードの各々に付与されたノード識別子に、前記非ルート・ノードの各々の親ノードに付与されたノード識別子を関連付ける親子関係定義部5003と、を含む。
12 CPU
14 RAM
16 ROM
18 固定記憶装置
20 CD−ROMドライバ
22 I/F
24 入力装置
26 表示装置
5000 情報処理装置
5001 記憶部
5002 ノード定義部
5003 親子関係定義部
Claims (7)
- コンピュータシステムのCPUがコンピュータシステムの記憶装置に記憶されたプログラムを実行することにより、同じ世代のノードよりも子ノードを優先してルート・ノードを含むノードに固有の連続する番号が付与され、前記固有の連続する番号の順に、前記ルート・ノード以外のノードである非ルート・ノードの各々の親ノードに付与された番号が並べられた配列によってコンピュータシステムの記憶装置上でノード間の親子関係が表現されているツリー型データ構造の表現形式を変換する方法であって、
コンピュータシステムのCPUが、記憶装置上の配列によって表現されたノード間の親子関係に基づいて、前記ルート・ノードから始めて、ノードに付与された前記固有の連続する番号の順に、各ノードの世代を判定し、各世代に属しているノードの個数を計数するステップと、
コンピュータシステムのCPUが、計数された各世代に属しているノードの個数を累計数化することにより、世代順にノードを並べたときの各世代の先頭ノードの番号を特定し、子ノードよりも同じ世代のノードを優先してルート・ノードを含むノードに固有の連続する番号を付与する際に各世代の先頭ノードに付与される番号を得て記憶装置に記憶するステップと、
コンピュータシステムのCPUが、前記ルート・ノードから始めて、ノードに付与された前記固有の連続する番号の順に、各ノードの世代に関して記憶装置に記憶された前記先頭ノードに付与される番号を1だけ増加させ、前記増加させられた番号を各ノードに付与された前記固有の連続する番号の順にノードの変換後の番号が格納される前記記憶装置上の変換配列に格納するステップと、
コンピュータシステムのCPUが、固有の連続する番号の順に変換後のノードの番号が格納された前記変換配列を使用して、ノードに付与された前記固有の連続する番号及び前記ノードの親ノードに付与された番号に対応する変換後のノードの番号をそれぞれ取得し、ノードに付与された前記固有の連続する番号に対応する変換後のノードの番号で示された格納位置に、前記ノードの親ノードに付与された番号に対応する変換後のノードの番号を格納することにより、子ノードよりも同じ世代のノードを優先して前記ルート・ノードを含むノードに固有の連続する整数が付与され、前記固有の連続する番号の順に、前記非ルート・ノードの各々の親ノードに付与された番号が並べられた配列を前記記憶装置に作成するステップと、
を有する方法。 - コンピュータシステムのCPUがコンピュータシステムの記憶装置に格納されたプログラムを実行することにより、子ノードよりも同じ世代のノードを優先してルート・ノードを含むノードに固有の連続する番号が付与され、前記固有の連続する番号の順に、前記ルート・ノード以外のノードである非ルート・ノードの各々の親ノードに付与された番号が並べられた配列によってコンピュータシステムの記憶装置上でノード間の親子関係が表現されているツリー型データ構造の表現形式を変換する方法であって、
コンピュータシステムのCPUが、前記配列と同じサイズのノード数配列を前記記憶装置に作成し、前記ノード数配列の各要素を1で初期化するステップと、
コンピュータシステムのCPUが、前記ルート・ノードに達するまで世代を遡る順番に、前記配列の要素の位置(子ノードの番号)と要素の値(親ノードの番号)とを使って前記ノード数配列にアクセスし、前記ノード数配列のうち前記配列の要素の位置で示される位置に格納された前記ノード数配列の要素の値を、前記ノード数配列のうち前記配列の要素の値で示される位置に格納された前記ノード数配列の要素の値に加算するステップと、
コンピュータシステムのCPUが、前記ルート・ノードの次のノードから始めて、ノードに付与された前記固有の連続する番号の順に、前記配列の中の親ノードに付与された番号に1を加算し、さらに、当該ノードと同一の親ノードから派生した兄弟ノードのうち当該ノードよりも前に番号が付与されている兄ノードが存在するならば、前記ノード数配列からの当該兄ノードの子孫の数を加算することにより、当該ノードに付与されるべき番号を取得し、前記取得された番号を各ノードに付与された前記固有の連続する番号の順にノードの変換後の番号が格納される前記記憶装置上の変換配列に格納するステップと、
コンピュータシステムのCPUが、固有の連続する番号の順に変換後のノードの番号が格納された前記変換配列を使用して、ノードに付与された前記固有の連続する番号及び前記ノードの親ノードに付与された番号に対応する変換後のノードの番号をそれぞれ取得し、ノードに付与された前記固有の連続する番号に対応する変換後のノードの番号で示された格納位置に、前記ノードの親ノードに付与された番号に対応する変換後のノードの番号を格納することにより、同じ世代のノードよりも子ノードを優先して前記ルート・ノードを含むノードに固有の連続する番号が付与され、前記固有の連続する番号の順に、前記非ルート・ノードの各々の親ノードに付与された番号が並べられた配列を前記記憶装置に作成するステップと、
を有する方法。 - 記憶装置上で親子関係を用いて表現されたツリー型データ構造の表現形式を変換する装置であって、
同じ世代のノードよりも子ノードを優先してルート・ノードを含むノードに固有の連続する番号を付与するノード定義手段と、
前記ルート・ノード以外のノードである非ルート・ノードの各々に付与された番号の順に、前記非ルート・ノードの各々の親ノードに付与された番号が並べられた配列を前記記憶装置に格納する親子関係定義手段と、
記憶装置上の配列によって表現されたノード間の親子関係に基づいて、前記ルート・ノードから始めて、ノードに付与された前記固有の連続する番号の順に、各ノードの世代を判定し、各世代に属しているノードの個数を計数する手段と、
計数された各世代に属しているノードの個数を累計数化することにより、世代順にノードを並べたときの各世代の先頭ノードの番号を特定し、子ノードよりも同じ世代のノードを優先してルート・ノードを含むノードに固有の連続する番号を付与する際に各世代の先頭ノードに付与される番号を得て記憶装置に記憶する手段と、
前記ルート・ノードから始めて、ノードに付与された前記固有の連続する番号の順に、各ノードの世代に関して記憶装置に記憶された前記先頭ノードに付与される番号を1だけ増加させ、前記増加させられた番号を各ノードに付与された前記固有の連続する番号の順にノードの変換後の番号が格納される前記記憶装置上の変換配列に格納する手段と、
固有の連続する番号の順に変換後のノードの番号が格納された前記変換配列を使用して、ノードに付与された前記固有の連続する番号及び前記ノードの親ノードに付与された番号に対応する変換後のノードの番号をそれぞれ取得し、ノードに付与された前記固有の連続する番号に対応する変換後のノードの番号で示された格納位置に、前記ノードの親ノードに付与された番号に対応する変換後のノードの番号を格納することにより、子ノードよりも同じ世代のノードを優先して前記ルート・ノードを含むノードに固有の連続する整数が付与され、前記固有の連続する番号の順に、前記非ルート・ノードの各々の親ノードに付与された番号が並べられた配列を前記記憶装置に作成する手段と、
を有する装置。 - 記憶装置上で親子関係を用いて表現されたツリー型データ構造の表現形式を変換する装置であって、
子ノードよりも同じ世代のノードを優先してルート・ノードを含むノードに固有の連続する番号を付与するノード定義手段と、
前記ルート・ノード以外のノードである非ルート・ノードの各々に付与された番号の順に、前記非ルート・ノードの各々の親ノードに付与された番号を並べることにより形成される配列を前記記憶装置に格納する親子関係定義手段と、
前記配列と同じサイズのノード数配列を前記記憶装置に作成し、前記ノード数配列の各要素を1で初期化する手段と、
前記ルート・ノードに達するまで世代を遡る順番に、前記配列の要素の位置と要素の値とを使って前記ノード数配列にアクセスし、前記ノード数配列のうち前記配列の要素の位置で示される位置に格納された前記ノード数配列の要素の値を、前記ノード数配列のうち前記配列の要素の値で示される位置に格納された前記ノード数配列の要素の値に加算する手段と、
前記ルート・ノードの次のノードから始めて、ノードに付与された前記固有の連続する番号の順に、前記配列の中の親ノードに付与された番号に1を加算し、さらに、当該ノードと同一の親ノードから派生した兄弟ノードのうち当該ノードよりも前に番号が付与されている兄ノードが存在するならば、前記ノード数配列からの当該兄ノードの子孫の数を加算することにより、当該ノードに付与されるべき番号を取得し、前記取得された番号を各ノードに付与された前記固有の連続する番号の順にノードの変換後の番号が格納される前記記憶装置上の変換配列に格納する手段と、
固有の連続する番号の順に変換後のノードの番号が格納された前記変換配列を使用して、ノードに付与された前記固有の連続する番号及び前記ノードの親ノードに付与された番号に対応する変換後のノードの番号をそれぞれ取得し、ノードに付与された前記固有の連続する番号に対応する変換後のノードの番号で示された格納位置に、前記ノードの親ノードに付与された番号に対応する変換後のノードの番号を格納することにより、同じ世代のノードよりも子ノードを優先して前記ルート・ノードを含むノードに固有の連続する番号が付与され、前記固有の連続する番号の順に、前記非ルート・ノードの各々の親ノードに付与された番号が並べられた配列を前記記憶装置に作成する手段と、
を有する装置。 - 記憶装置上で親子関係を用いて表現されたツリー型データ構造の表現形式を変換するコンピュータのCPUに、
同じ世代のノードよりも子ノードを優先してルート・ノードを含むノードに固有の連続する番号を付与する機能と、
前記ルート・ノード以外のノードである非ルート・ノードの各々に付与された番号の順に、前記非ルート・ノードの各々の親ノードに付与された番号が並べられた配列を前記記憶装置に格納する機能と、
記憶装置上の配列によって表現されたノード間の親子関係に基づいて、前記ルート・ノードから始めて、ノードに付与された前記固有の連続する番号の順に、各ノードの世代を判定し、各世代に属しているノードの個数を計数する機能と、
計数された各世代に属しているノードの個数を累計数化することにより、世代順にノードを並べたときの各世代の先頭ノードの番号を特定し、子ノードよりも同じ世代のノードを優先してルート・ノードを含むノードに固有の連続する番号を付与する際に各世代の先頭ノードに付与される番号を得て記憶装置に記憶する機能と、
前記ルート・ノードから始めて、ノードに付与された前記固有の連続する番号の順に、各ノードの世代に関して記憶装置に記憶された前記先頭ノードに付与される番号を1だけ増加させ、前記増加させられた番号を各ノードに付与された前記固有の連続する番号の順にノードの変換後の番号が格納される前記記憶装置上の変換配列に格納する機能と、
固有の連続する番号の順に変換後のノードの番号が格納された前記変換配列を使用して、ノードに付与された前記固有の連続する番号及び前記ノードの親ノードに付与された番号に対応する変換後のノードの番号をそれぞれ取得し、ノードに付与された前記固有の連続する番号に対応する変換後のノードの番号で示された格納位置に、前記ノードの親ノードに付与された番号に対応する変換後のノードの番号を格納することにより、子ノードよりも同じ世代のノードを優先して前記ルート・ノードを含むノードに固有の連続する整数が付与され、前記固有の連続する番号の順に、前記非ルート・ノードの各々の親ノードに付与された番号が並べられた配列を前記記憶装置に作成する機能と、
を実現させるためのプログラム。 - 記憶装置上で親子関係を用いて表現されたツリー型データ構造の表現形式を変換するコンピュータに、
子ノードよりも同じ世代のノードを優先してルート・ノードを含むノードに固有の連続する番号を付与する機能と、
前記ルート・ノード以外のノードである非ルート・ノードの各々に付与された番号の順に、前記非ルート・ノードの各々の親ノードに付与された番号を並べることにより形成される配列を前記記憶装置に格納する機能と、
前記配列と同じサイズのノード数配列を前記記憶装置に作成し、前記ノード数配列の各要素を1で初期化する機能と、
前記ルート・ノードに達するまで世代を遡る順番に、前記配列の要素の位置と要素の値とを使って前記ノード数配列にアクセスし、前記ノード数配列のうち前記配列の要素の位置で示される位置に格納された前記ノード数配列の要素の値を、前記ノード数配列のうち前記配列の要素の値で示される位置に格納された前記ノード数配列の要素の値に加算する機能と、
前記ルート・ノードの次のノードから始めて、ノードに付与された前記固有の連続する番号の順に、前記配列の中の親ノードに付与された番号に1を加算し、さらに、当該ノードと同一の親ノードから派生した兄弟ノードのうち当該ノードよりも前に番号が付与されている兄ノードが存在するならば、前記ノード数配列からの当該兄ノードの子孫の数を加算することにより、当該ノードに付与されるべき番号を取得し、前記取得された番号を各ノードに付与された前記固有の連続する番号の順にノードの変換後の番号が格納される前記記憶装置上の変換配列に格納する機能と、
固有の連続する番号の順にノードの変換後の番号が格納された前記変換配列を使用して、ノードに付与された前記固有の連続する番号及び前記ノードの親ノードに付与された番号に対応する変換後のノードの番号をそれぞれ取得し、ノードに付与された前記固有の連続する番号に対応する変換後のノードの番号で示された格納位置に、前記ノードの親ノードに付与された番号に対応する変換後のノードの番号を格納することにより、同じ世代のノードよりも子ノードを優先して前記ルート・ノードを含むノードに固有の連続する番号が付与され、前記固有の連続する番号の順に、前記非ルート・ノードの各々の親ノードに付与された番号が並べられた配列を前記記憶装置に作成する機能と、
を実現させるためのプログラム。 - 請求項5または6に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004075404 | 2004-03-16 | ||
JP2004075404 | 2004-03-16 | ||
PCT/JP2005/004190 WO2005088479A1 (ja) | 2004-03-16 | 2005-03-10 | ツリー型データ構造を取り扱う方法、情報処理装置、及び、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2005088479A1 JPWO2005088479A1 (ja) | 2008-04-24 |
JP4537391B2 true JP4537391B2 (ja) | 2010-09-01 |
Family
ID=34975770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006510978A Active JP4537391B2 (ja) | 2004-03-16 | 2005-03-10 | ツリー型データ構造を取り扱う方法、情報処理装置、及び、プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US7627604B2 (ja) |
JP (1) | JP4537391B2 (ja) |
WO (1) | WO2005088479A1 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8037102B2 (en) | 2004-02-09 | 2011-10-11 | Robert T. and Virginia T. Jenkins | Manipulating sets of hierarchical data |
US7620632B2 (en) * | 2004-06-30 | 2009-11-17 | Skyler Technology, Inc. | Method and/or system for performing tree matching |
US7627591B2 (en) | 2004-10-29 | 2009-12-01 | Skyler Technology, Inc. | Method and/or system for manipulating tree expressions |
US7801923B2 (en) | 2004-10-29 | 2010-09-21 | Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust | Method and/or system for tagging trees |
US7630995B2 (en) | 2004-11-30 | 2009-12-08 | Skyler Technology, Inc. | Method and/or system for transmitting and/or receiving data |
US7636727B2 (en) | 2004-12-06 | 2009-12-22 | Skyler Technology, Inc. | Enumeration of trees from finite number of nodes |
US8316059B1 (en) | 2004-12-30 | 2012-11-20 | Robert T. and Virginia T. Jenkins | Enumeration of rooted partial subtrees |
WO2006080268A1 (ja) * | 2005-01-25 | 2006-08-03 | Turbo Data Laboratories Inc. | ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム |
US8615530B1 (en) | 2005-01-31 | 2013-12-24 | Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust | Method and/or system for tree transformation |
US7681177B2 (en) | 2005-02-28 | 2010-03-16 | Skyler Technology, Inc. | Method and/or system for transforming between trees and strings |
US8356040B2 (en) | 2005-03-31 | 2013-01-15 | Robert T. and Virginia T. Jenkins | Method and/or system for transforming between trees and arrays |
CN101198954B (zh) * | 2005-04-12 | 2010-08-25 | 法国电信公司 | 用于处理树数据结构的方法 |
US7899821B1 (en) | 2005-04-29 | 2011-03-01 | Karl Schiffmann | Manipulation and/or analysis of hierarchical data |
US8190649B2 (en) * | 2006-04-25 | 2012-05-29 | Google Inc. | Ranking and clustering of geo-located objects |
US9715558B2 (en) * | 2008-04-14 | 2017-07-25 | International Business Machines Corporation | Structure-position mapping of XML with variable-length data |
EP2338127B1 (en) * | 2008-08-29 | 2015-07-29 | Brown University | Cryptographic accumulators for authenticated hash tables |
US8943045B2 (en) * | 2009-01-28 | 2015-01-27 | Oracle International Corporation | Mechanisms for efficient autocompletion in XML search applications |
JP5278534B2 (ja) * | 2009-03-19 | 2013-09-04 | 富士通株式会社 | 記憶媒体 |
US8370394B2 (en) * | 2009-07-17 | 2013-02-05 | International Business Machines Corporation | Parallel processing of data organized in a tree structure |
CN102402545B (zh) * | 2010-09-14 | 2015-09-02 | 腾讯科技(深圳)有限公司 | 一种存储数据的方法及装置 |
US8825710B2 (en) * | 2011-05-26 | 2014-09-02 | Planet Technologies | Cloud computing method for dynamically scaling a process across physical machine boundaries |
JP5804429B2 (ja) * | 2013-09-17 | 2015-11-04 | 国立研究開発法人情報通信研究機構 | 通信装置、通信方法 |
WO2019165644A1 (zh) * | 2018-03-02 | 2019-09-06 | 福建联迪商用设备有限公司 | 一种地址纠错方法及终端 |
US10956392B1 (en) * | 2018-07-23 | 2021-03-23 | Allscripts Software, Llc | Methods, apparatuses, and computer program products for identifying fields in a data tree |
US11960609B2 (en) * | 2019-10-21 | 2024-04-16 | Snyk Limited | Package dependencies representation |
CN110333846B (zh) * | 2019-06-18 | 2022-12-06 | 国云科技股份有限公司 | 一种快速缕清和组装数据父子上下关系列表的方法 |
CN110688531B (zh) * | 2019-08-26 | 2022-08-26 | 北京旷视科技有限公司 | 树组件渲染方法和装置、数据处理设备及介质 |
US11188324B2 (en) * | 2019-12-23 | 2021-11-30 | Intel Corporation | Methods, systems, and articles of manufacture to perform heterogeneous data structure selection via programmer annotations |
CN112860692B (zh) * | 2021-01-29 | 2023-07-25 | 城云科技(中国)有限公司 | 一种数据库表结构转换方法、装置及其电子设备 |
CN116029271B (zh) * | 2023-02-01 | 2023-06-13 | 南京维拓科技股份有限公司 | 一种基于EasyExcel的批量导入树型结构数据的方法 |
CN116303405B (zh) * | 2023-05-12 | 2023-11-10 | 深圳竹云科技股份有限公司 | 一种数据查重方法、装置、计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240741A (ja) * | 1997-02-28 | 1998-09-11 | Nippon Telegr & Teleph Corp <Ntt> | 木構造型データの管理方法 |
JPH11327993A (ja) * | 1998-04-17 | 1999-11-30 | Xerox Corp | 一般化されたグラフ構造の使用度ベ―スの巡回および表示方法、装置並びに媒体 |
JP2000099226A (ja) * | 1998-07-29 | 2000-04-07 | Xerox Corp | ディスプレイ上にノ―ド―リンク表現を表示する方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4868743A (en) * | 1986-11-25 | 1989-09-19 | Hitachi, Ltd. | Traversal method of processing tree structure information and apparatus using the same |
JPH07319918A (ja) * | 1994-05-24 | 1995-12-08 | Fuji Xerox Co Ltd | 文書検索対象指示装置 |
JPH09106348A (ja) * | 1995-10-11 | 1997-04-22 | Fujitsu Ltd | 学習機能を有する問題解決器 |
US6006027A (en) * | 1997-08-20 | 1999-12-21 | Synopsys, Inc. | Method and apparatus for event simulation |
US6029170A (en) * | 1997-11-25 | 2000-02-22 | International Business Machines Corporation | Hybrid tree array data structure and method |
EP0926594B1 (en) * | 1997-12-17 | 2007-05-23 | Hewlett-Packard Company, A Delaware Corporation | Method of using primary and secondary processors |
US6081624A (en) * | 1998-06-01 | 2000-06-27 | Autodesk, Inc. | Spatial index compression through spatial subdivision encoding |
US6279007B1 (en) * | 1998-11-30 | 2001-08-21 | Microsoft Corporation | Architecture for managing query friendly hierarchical values |
US6389416B1 (en) * | 1999-02-19 | 2002-05-14 | International Business Machines Corporation | Depth first method for generating itemsets |
US6904423B1 (en) * | 1999-02-19 | 2005-06-07 | Bioreason, Inc. | Method and system for artificial intelligence directed lead discovery through multi-domain clustering |
JP2001195406A (ja) | 2000-01-06 | 2001-07-19 | Media Fusion Co Ltd | データベース管理システム |
US6567815B1 (en) * | 2000-08-01 | 2003-05-20 | International Business Machines Corporation | Technique of clustering and compaction of binary trees |
US6931418B1 (en) * | 2001-03-26 | 2005-08-16 | Steven M. Barnes | Method and system for partial-order analysis of multi-dimensional data |
JP4165086B2 (ja) | 2002-02-25 | 2008-10-15 | 日本電気株式会社 | Xmlデータのrdbへの格納装置及び方法、rdbからのxmlデータの取得装置及び方法並びにプログラム |
-
2005
- 2005-03-10 WO PCT/JP2005/004190 patent/WO2005088479A1/ja active Application Filing
- 2005-03-10 US US10/599,043 patent/US7627604B2/en not_active Expired - Fee Related
- 2005-03-10 JP JP2006510978A patent/JP4537391B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240741A (ja) * | 1997-02-28 | 1998-09-11 | Nippon Telegr & Teleph Corp <Ntt> | 木構造型データの管理方法 |
JPH11327993A (ja) * | 1998-04-17 | 1999-11-30 | Xerox Corp | 一般化されたグラフ構造の使用度ベ―スの巡回および表示方法、装置並びに媒体 |
JP2000099226A (ja) * | 1998-07-29 | 2000-04-07 | Xerox Corp | ディスプレイ上にノ―ド―リンク表現を表示する方法 |
Also Published As
Publication number | Publication date |
---|---|
US20080270435A1 (en) | 2008-10-30 |
US7627604B2 (en) | 2009-12-01 |
JPWO2005088479A1 (ja) | 2008-04-24 |
WO2005088479A1 (ja) | 2005-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4537391B2 (ja) | ツリー型データ構造を取り扱う方法、情報処理装置、及び、プログラム | |
JP4886693B2 (ja) | 情報処理方法、情報処理装置および情報処理プログラム | |
JP4681544B2 (ja) | 配列の生成方法、情報処理装置、及び、プログラム | |
JP4653157B2 (ja) | ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム | |
JP4712718B2 (ja) | 配列の生成方法、及び、配列生成プログラム | |
US7827219B2 (en) | Method for encoding, traversing, manipulating and querying a tree | |
JP4796970B2 (ja) | ツリーデータの検索・集計・ソート方法及びプログラム | |
JP5241738B2 (ja) | 表からツリー構造データを構築する方法及び装置 | |
JP2006185408A (ja) | データベース構築装置及びデータベース検索装置及びデータベース装置 | |
US8145667B2 (en) | Schemaless XML payload generation | |
JP4681555B2 (ja) | ノード挿入方法、情報処理装置、および、ノード挿入プログラム | |
JP5220483B2 (ja) | 木構造のデータに対する集約計算を行うコンピュータ・システム、並びにその方法及びコンピュータ・プログラム | |
KR100660028B1 (ko) | 데이터베이스 개념 구조에 기반한 xml 트리의 색인 및질의 방법 | |
JP2003281150A (ja) | 識別番号付与装置、識別番号管理方法、識別番号管理プログラム及び同プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2001134596A (ja) | 構造化文書管理装置および構造化文書検索方法 | |
JPH02190970A (ja) | インデクスの構造およびこれを用いるサーチ処理方法 | |
JP2006228070A (ja) | データの検索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080227 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100316 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100511 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100615 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100617 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130625 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4537391 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |