JP4417431B2 - カップルドノードツリーの分割/結合方法及びプログラム - Google Patents
カップルドノードツリーの分割/結合方法及びプログラム Download PDFInfo
- Publication number
- JP4417431B2 JP4417431B2 JP2009221744A JP2009221744A JP4417431B2 JP 4417431 B2 JP4417431 B2 JP 4417431B2 JP 2009221744 A JP2009221744 A JP 2009221744A JP 2009221744 A JP2009221744 A JP 2009221744A JP 4417431 B2 JP4417431 B2 JP 4417431B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- tree
- key
- processing
- coupled
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
上記ビット列の検索を高速に行うために、ビット列を記憶するデータ構造を種々に工夫することが従来から行われている。このようなものの一つとして、パトリシアツリーという木構造が知られている。
ある検索キーで検索を行うとき、ルートノードから順次各ノードに保持される検索キーの検査ビット位置を検査していき、検査ビット位置のビット値が1であるか0であるか判定を行い、1であれば右リンクをたどり、0であれば左リンクをたどる。そして、リンク先のノードの検査ビット位置がリンク元のノードの検査ビット位置より大きくなければ、すなわち、リンク先が下方でなく上方に戻れば(図17において点線で示されたこの逆戻りのリンクをバックリンクという)、リンク先のノードのインデックスキーと検索キーの比較を行う。比較の結果、等しければ検索成功であり、等しくなければ検索失敗であることが保証されている。
上記3つの出願において提案した検索手法は、検索開始ノードから順次ブランチノードをたどってリーフノードに至り、リーフノードに格納されたインデックスキーを求める操作を基本とするものであり、検索履歴として検索開始ノードからリーフノードに至るノードの配置された記憶領域のアドレス情報として該ノードの格納されている配列要素の配列番号をスタックに格納している。そして、検索処理後の各種処理において、スタックに格納されたアドレス情報を基にそのアドレス情報が示す記憶領域に格納されたノードを参照して弁別ビット位置を取り出すことが行われている。
図1を参照すると、ノード101が配列100の配列番号10の配列要素に配置されている。ノード101はノード種別102、弁別ビット位置103及び代表ノード番号104で構成されている。ノード種別102は0であり、ノード101がブランチノードであることを示している。弁別ビット位置103には1が格納されている。代表ノード番号104にはリンク先のノード対の代表ノードの配列番号20が格納されている。なお、以下では表記の簡略化のため、代表ノード番号に格納された配列番号を代表ノード番号ということもある。また、代表ノード番号に格納された配列番号をそのノードに付した符号あるいはノード対に付した符号で表すこともある。
ノード[0]112、ノード[1]113、ノード122、及びノード123の格納された配列要素にそれぞれ付された0あるいは1は、検索キーで検索を行う場合にノード対のどちらのノードにリンクするかを示すものである。前段のブランチノードの弁別ビット位置にある検索キーのビット値である0か1を代表ノード番号に加えた配列番号のノードにリンクする。
なお、上記の例では代表ノード番号をノード対の配置された配列番号のうち小さい方を採用しているが、大きいほうを採用することも可能であることは明らかである。
符号210aで示すのがルートノードである。図示の例では、ルートノード210aは配列番号220に配置されたノード対201aの代表ノードとしている。
まず、ビット列“100010”を検索キーとしてルートノード210aから処理をスタートする。ルートノード210aの弁別ビット位置230aは0であるので、検索キー“100010”の弁別ビット位置が0のビット値をみると1である。そこで代表ノード番号の格納された配列番号220aに1を加えた配列番号の配列要素に格納されたノード211bにリンクする。ノード211bの弁別ビット位置231bには2が格納されているので、検索キー“100010”の弁別ビット位置が2のビット値をみると0であるから、代表ノード番号の格納された配列番号221bの配列要素に格納されたノード210fにリンクする。
カップルドノードツリーの構成はインデックスキーの集合により規定される。図2の例で、ルートノード210aの弁別ビット位置が0であるのは、図2に例示されたインデックスキーに0ビット目が0のものと1のものがあるからである。0ビット目が0のインデックスキーのグループはノード210bの下に分類され、0ビット目が1のインデックスキーのグループはノード211bの下に分類されている。
そして2ビット目が1であるインデックスキーは3ビット目の異なるものがあるのでノード211fの弁別ビット位置には3が格納され、2ビット目が0であるインデックスキーでは3ビット目も4ビット目も等しく5ビット目で異なるのでノード210fの弁別ビット位置には5が格納される。
そしてさらにいえば、異なるビット値となるビット位置ごとにビット値が“1”のノードとビット値が“0”のノードとに分岐していることから、ノード[1]側とツリーの深さ方向を優先させてリーフノードをたどると、それらに格納されたインデックスキーは、ノード211hのインデックスキー251hの“101100”、ノード210hのインデックスキー250hの“101011”、・・・、ノード210cのインデックスキー250cの“000111”となり降順にソートされている。
検索キーで検索するときはインデックスキーがカップルドノードツリー上に配置されたルートをたどることになり、例えば検索キーが“101100”であればノード211hに到達することができる。また、上記説明からも想像がつくように、“101101”か“101110”を検索キーとした場合でもノード211hにたどり着き、インデックスキー251hと比較することにより検索が失敗したことが分かる。
本発明の検索装置による検索処理及びデータメンテナンスは中央処理装置302及びキャッシュメモリ303を少なくとも備えたデータ処理装置301によりデータ格納装置308を用いて実施される。データ格納装置308は、カップルドノードツリーが配置される配列309と検索中にたどるノードが格納された配列要素の配列番号のほかノード内の情報を記憶する探索経路スタック310を有する。このデータ格納装置308は主記憶装置305または外部記憶装置306で実現することができ、あるいは通信装置307を介して接続された遠方に配置された装置を用いることも可能である。
次に、上述の出願において本出願人により提案された、カップルドノードツリーを用いた基本的な検索処理、カップルドノードツリーにおける挿入削除処理、カップルドノードツリーに含まれるインデックスキーの最大値/最小値を求める処理等の応用処理、及びカップルドノードツリーの分割/結合処理において、検索履歴を格納するスタックに、ノードの配置された記憶領域のアドレス情報のみならず各種処理で用いるブランチノードの弁別ビット位置を格納し、それを利用する本発明を説明する。
次にステップS406aで、ステップS406で取り出した弁別ビット位置を探索経路スタック310に格納するとともに、ステップS407で、取り出した弁別ビット位置に対応するビット値を検索キーから取り出す。そして、ステップS408で、ノードから代表ノード番号を取り出して、ステップS409で、検索キーから取り出したビット値と代表ノード番号とを加算し、新たな配列番号を得て、ステップS402に戻る。
図4Bにおいては、カップルドノードツリー、検索キー設定エリア270及び探索経路スタック310が示されている。以下、図4Bを用いてカップルドノードツリー上の参照されるノード及び探索経路スタック310の状態について説明する。
ステップS512において、配列から空きのノード対を求め、そのノード対のうち代表ノードとなるべき配列要素の配列番号を取得する。
ステップS514に進み、ステップS512で得た代表ノードの配列番号にステップS513で得たブール値を加算した配列番号を得る。
ステップS514で得た配列番号は、挿入キーをインデックスキーとして持つリーフノードが格納される配列要素の配列番号であり、ステップS515で得た配列番号は、そのリーフノードと対を成すノードが格納される配列要素のものである。
図5Cは図5Bで準備された配列にノードを格納するとともにその挿入位置を求め、既存のノードの内容を変更して挿入処理を完成させる処理フローを示す図である。
ステップS517に進み、ステップS516で得た差分ビット列から、上位0ビット目から見た最初の不一致ビットのビット位置を得る。この処理は、例えばプライオリティエンコーダを有するCPUではそこに差分ビット列を入力し、不一致のビット位置を得ることができる。また、ソフト的にプライオリティエンコーダと同等の処理を行い最初の不一致ビットのビット位置を得ることも可能である。
先の出願である上述の特願2006−187827で提案された挿入処理においては、探索経路スタックにスタックされているのは配列番号だけであったため、配列番号を取り出して配列から該配列番号の指す配列要素に格納されたノードから弁別ビット位置を取り出すものであったが、本発明では図5Aに示すステップS506aで探索経路スタックに弁別ビット位置を格納しているので、配列にアクセスすることなく、弁別ビット位置を取り出すことができる。
ステップS524では探索経路スタックからスタックポインタの指す配列番号を取り出す。
ステップS525において、ステップS514で得た配列番号の指す配列要素のノード種別に“1”(リーフノード)を、インデックスキーに挿入キーを書き込む。
ステップS526に進み、配列からステップS524で得た配列番号の配列要素を読み出す。
最後にステップS528において、ステップS524で得た配列番号の指す配列要素のノード種別に“0”(ブランチノード)を、弁別ビット位置にステップS517で得たビット位置を、代表ノード番号にステップS512で得た配列番号を書き込み、処理を終了する。
まず、ステップS602において、配列から空きのノード対を求め、そのノード対のうち代表ノードとなるべき配列要素の配列番号を取得する。次にステップS603において、ステップS602で得た配列番号に0を加えた配列番号を求める。(実際には、ステップS602で取得した配列番号に等しい。)。さらにステップS604において、ステップS603で得た配列番号の配列要素に、挿入するルートノードのノード種別に1(リーフノード)とインデックスキーに挿入キーを書き込み、ステップS605で、ステップS602で取得したルートノードの配列番号を登録して処理を終了する。
まず、ステップS712で探索経路スタックに2つ以上の配列番号が格納されているか判定する。2つ以上の配列番号が格納されていないということは、言い換えれば1つだけで、その配列番号はルートノードの格納された配列要素のものである。その場合はステップS718に移行し、ステップS701で得たルートノードの配列番号に係るノード対を削除する。次にステップS719に進み、登録されていたルートノードの配列番号を削除して処理を終了する。
次にステップS806aに進み、ノードから弁別ビット位置を取り出し、ステップS806bで、その取り出した弁別ビット位置を探索経路スタックに格納する。
本発明でいうカップルドノードツリーの分割とは、あるビット列からなる分割キーを指定したとき、カップルドノードツリーに含まれるインデックスキーをその分割キーとの大小関係により2グループに分け、それぞれのグループに属するインデックスキーからなる2つのカップルドノードツリーを生成することである。
また、カップルドノードツリーの結合とは、2つのインデックスキーの集合に対応する2つカップルドノードツリーから2つのインデックスキーの集合の和集合に対応するカップルドノードツリーを生成することである。本発明では、2つのインデックスキーの集合の積集合は空であることを前提にしている。なお、以下の説明において、カップルドノードツリーを単にツリーということがある。
ステップS1203では、処理元のツリーが登録済みか判定する。この判定結果が登録済みではないというのは処理元のツリーが全て削除済みであることを意味するから、分割キーが処理元のツリーのインデックスキーの最大値以上である例外的なものであり、その場合には処理を終了する。
次にステップS1207で、図5A〜図5C、図6に示すツリーの生成、挿入処理により、挿入キーによる処理先のツリーの生成を実行する。
結合処理は、結合しようとする2つのツリーのうちどちらかを処理元のツリーとし、分割キーを処理元のツリーのインデックスキーの最大値以上とすれば、先に述べた例外的な処理に該当し、処理元のツリーは削除され、処理先のツリーに結合される。なお、処理元のツリーのインデックスキーの最大値が未知の場合には、前もって図10に示す最大値検索処理により分割キーを求めることになる。
続いてステップS1310で、ステップS1309で得られた処理元の親ノードを、処理元の検索開始ノードに設定し、ステップS1303に戻る。
したがって、2回目以降のステップS1304での最小値検索の検索開始ノードはルートノードとしないで処理元の親ノードとすることにより、処理ステップ数を低減することができる。
ステップS1308〜ステップS1309及び処理元の親ノードについては、後に図16を参照して詳細に説明する。
次にステップS1402において、処理先が登録済みか判定する。
登録済みでなければステップS1403に移行し、ステップS1403において、挿入キーを含むノード対を処理先のルートノードに設定し、処理先のルートノードとして登録する。続いてステップS1404に進み、処理先のルートノードを挿入済みノードとして設定して処理を終了する。
ステップS1405での判定結果が「いいえ」であればステップS1407に進み、ルートノードを処理先の検索開始ノードとして設定し、ステップS1408に進む。
次に、上述のステップS1403とステップS1409について詳細に説明する。
次にステップS1502において、ステップS1501で取得した代表ノード番号に値“0”を加えて得た配列番号を、挿入ノードの配列番号として設定しておく。
次にステップS1504において、挿入ノードの配列番号をルートノードの配列番号として登録して処理を終了する。
ステップS1510では、処理先の探索経路スタックのスタックポインタがルートノードの配列番号を指しているか判定する。
判定の結果、処理先の探索経路スタックのスタックポインタがルートノードの配列番号を指している場合には、ステップS1511において処理先の探索経路スタックからスタックポインタの指す配列番号を取り出し、処理先の親ノードの配列番号を格納するエリアに設定してステップS1513に移行する。
次にステップS1514において、代表ノード番号に1を加えて得た配列番号を挿入ノードの配列番号を格納するエリアに設定する。
次にステップS1517において、ステップS1511あるいはステップS1512で設定した処理先の親ノードの配列番号の指す配列要素の内容を読み出し、ステップS1516で設定した対ノードの配列番号の指す配列要素に格納する。
最初のステップであるステップS1601は、図13に示すステップS1308に相当するものである。削除ノードに含まれる削除キーは図13に示すステップS1304において最小値検索により求められたものであるから、処理元の探索経路スタックには削除キーの格納された配列要素の配列番号がスタックされているので、その配列番号により削除ノードを読み出して削除ノードを格納するエリアに設定する。
次にステップS1606において、削除ノードの代表ノード番号の指すノード対を削除して処理を終了する。
また、第1の分割処理の場合と同様に分割処理の処理フローをツリーの結合処理に用いることが可能である。結合しようとする2つのツリーのうちどちらかを処理元のツリーとし、分割キーを処理元のツリーのインデックスキーの最大値以上あるいは最小値以下として処理元のツリーの削除処理を行い、削除されたノードを処理先のツリーに挿入する処理を行えばよい。
100 配列
101 ノード
102 ノード種別
103 弁別ビット位置
104 代表ノード番号
111 ノード対
112 ノード[0]、代表ノード
113 ノード[1]、代表ノードと対をなすノード
118 インデックスキー
301 データ処理装置
302 中央処理装置
303 キャッシュメモリ
304 バス
305 主記憶装置
306 外部記憶装置
307 通信装置
308 データ格納装置
309 配列
310 探索経路スタック
Claims (9)
- ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いるツリーであって、前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、
前記ツリーの任意のノードを検索開始ノードとし、前記ブランチノードにおいて該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいはそれと隣接した記憶領域に配置されたノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索結果である検索結果キーとするように構成されたカップルドノードツリーをコンピュータが分割する、カップルドノードツリーの分割方法において、
分割対象である処理元カップルドノードツリーを分割するインデックスキーを決定する分割キーを取得するステップと、
前記処理元カップルドノードツリーのルートノードを検索開始ノードとして前記ノード対のうち、該ノード対を構成する2つのノードのうちの代表ノードのみあるいは代表ノードと隣接した記憶領域に配置されたノードのみをリンクしてリーフノードに至ることにより、前記処理元カップルドノードツリーのインデックスキーの最小値あるいは最大値を求めるとともに、該リーフノードに至るまでたどったリンク経路のブランチノード及び該リーフノードが配置された記憶領域のアドレス情報と該ブランチノードの弁別ビット位置をスタックに順次格納する、処理元カップルドノードツリーのインデックスキーの最小値あるいは最大値を求める処理元最小値あるいは最大値取得ステップと、
前記分割キーと前記最小値あるいは最大値との大小を比較し、該最小値が前記分割キーより大きければあるいは該最大値が前記分割キーより小ければ処理を終了する比較ステップと、
前記比較の結果、該最小値が前記分割キーより大きくなければあるいは該最大値が前記分割キーより小さくなければ、
該最小値あるいは該最大値をインデックスキーとして挿入する処理先カップルドノードツリーが存在していない場合は、該最小値あるいは該最大値をインデックスキーとして含むリーフノードをルートノードとする処理先カップルドノードツリーを生成し、前記処理先カップルドノードツリーが存在している場合は、該処理先カップルドノードツリーに該最小値あるいは該最大値のインデックスキーを挿入して新たな処理先カップルドノードツリーを生成する生成ステップと、
前記処理元カップルドノードツリーから前記最小値あるいは前記最大値のインデックスキーを削除する削除ステップと、
を備え、
前記最小値あるいは前記最大値のインデックスキーを削除した前記処理元カップルドノードツリーを新たな処理元カップルドノードツリーとした前記処理元最小値あるいは最大値取得ステップ、前記比較ステップ、前記生成ステップ及び前記削除ステップを前記処理元最小値あるいは最大値取得ステップで取得された最小値あるいは最大値が前記分割キーより大きくなるまであるいは小さくなるまで繰り返すことを特徴とするカップルドノードツリーの分割方法。 - 請求項1に記載のカップルドノードツリーの分割方法において、
前記カップルドノードツリーは、配列に記憶され、前記位置情報は、該位置情報に対応する前記代表ノードが格納された前記配列の配列要素の配列番号であり、
前記検索開始ノード及びリンク先のノードの配置された記憶領域のアドレス情報は、前記検索開始ノード及びリンク先のノードの格納された配列要素の配列番号であり、
前記生成ステップは、
前記処理先カップルドノードツリーが存在している場合は、
前記処理元最小値あるいは最大値取得ステップで求めた最小値あるいは最大値を前記処理先カップルドノードツリーの挿入キーとして設定して前記処理先カップルドノードツリーのインデックスキーの最大値あるいは最小値を取得する処理先最大値あるいは最小値取得ステップを実行し、
前記挿入キーと前記インデックスキーの最大値あるいは最小値との間でビット列比較を行って異なるビット値となる先頭のビット位置を求め、
該ビット位置と前記スタックに格納されている弁別ビット位置との相対的位置関係により、前記挿入キーを保持するリーフノードを含むノード対の挿入位置である処理先親ノードを決定し、
該処理先親ノードの前記位置情報を、前記挿入キーを保持するリーフノードを含むノード対の代表ノードが格納されている配列要素の配列番号とする、
ステップを含むものであること、
を特徴とするカップルドノードツリーの分割方法。 - 請求項2に記載のカップルドノードツリーの分割方法において、
前記生成ステップは、さらに前記処理先親ノードを、挿入キーを含むリーフノードを挿入した挿入済みノードとして設定するステップを含み、
前記処理先最大値あるいは最小値取得ステップは、前記挿入済みノードを検索開始ノードとして前記処理先カップルドノードツリーのインデックスキーの最大値あるいは最小値を取得するものであることを特徴とするカップルドノードツリーの分割方法。 - 請求項3に記載のカップルドノードツリーの分割方法において、
前記削除ステップは、
前記処理元最小値あるいは最大値取得ステップで求めた最小値あるいは最大値をインデックスキーとして含むリーフノードを前記処理元カップルドノードツリーの削除ノードとして設定し、
前記削除ノートと同一ノード対を構成するノードの内容を当該ノード対のリンク元のブランチノードに書き込み、
当該ノード対を削除する、
ステップを含むものであることを特徴とするカップルドノードツリーの分割方法。 - ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いるツリーであって、前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、
前記ツリーの任意のノードを検索開始ノードとし、前記ブランチノードにおいて該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいはそれと隣接した記憶領域に配置されたノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索結果である検索結果キーとするように構成された2つのカップルドノードツリーをコンピュータが結合する、カップルドノードツリーの結合方法において、
前記処理元カップルドノードツリーのルートノードを検索開始ノードとして前記ノード対のうち、該ノード対を構成する2つのノードのうちの代表ノードのみあるいは代表ノードと隣接した記憶領域に配置されたノードのみをリンクしてリーフノードに至ることにより、前記処理元カップルドノードツリーのインデックスキーの最小値あるいは最大値を求めるとともに、該リーフノードに至るまでたどったリンク経路のブランチノード及び該リーフノードが配置された記憶領域のアドレス情報と該ブランチノードの弁別ビット位置をスタックに順次格納する、前記2つのカップルドノードツリーの一方の処理元カップルドノードツリーのインデックスキーの最小値あるいは最大値を求める処理元最小値あるいは最大値取得ステップと、
前記2つのカップルドノードツリーの他方の処理先カップルドノードツリーに前記最小値あるいは最大値のインデックスキーを挿入する挿入ステップと、
前記処理元カップルドノードツリーから前記最小値あるいは前記最大値のインデックスキーを削除する削除ステップと、
を備え、
前記最小値あるいは前記最大値のインデックスキーを削除した前記処理元カップルドノードツリーを新たな処理元カップルドノードツリーとした前記処理元最小値あるいは最大値取得ステップ、前記挿入ステップ及び前記削除ステップを前記処理元カップルドノードツリーがすべて削除されるまで繰り返すことを特徴とするカップルドノードツリーの結合方法。 - 請求項5に記載のカップルドノードツリーの結合方法において、
前記カップルドノードツリーは、配列に記憶され、前記位置情報は、該位置情報に対応する代表ノードが格納された前記配列の配列要素の配列番号であり、
前記検索開始ノード及びリンク先のノードの配置された記憶領域のアドレス情報は、前記検索開始ノード及びリンク先のノードの格納された配列要素の配列番号であり、
前記挿入ステップは、
前記最小値あるいは前記最大値を前記処理先カップルドノードツリーの挿入キーとして設定して前記前記処理先カップルドノードツリーのインデックスキーの最大値あるいは最小値を取得する処理先最大値あるいは最小値取得ステップを実行し、
前記挿入キーと前記インデックスキーの最大値あるいは最小値との間でビット列比較を行って異なるビット値となる先頭のビット位置を求め、
該ビット位置と前記スタックに格納されている弁別ビット位置との相対的位置関係により、前記挿入キーを保持するリーフノードを含むノード対の挿入位置である親ノードを決定し、
該親ノードの前記位置情報を、前記挿入キーを保持するリーフノードを含むノード対の代表ノードが格納されている配列要素の配列番号とする、
ステップを含むものであること、
を特徴とするカップルドノードツリーの結合方法。 - 請求項6に記載のカップルドノードツリーの結合方法において、
前記削除ステップは、
前記処理元最小値あるいは最大値取得ステップで求めた最小値あるいは最大値をインデックスキーとして含むリーフノードを前記処理元カップルドノードツリーの削除ノードとして設定し、
前記削除ノートと同一ノード対を構成するノードの内容を当該ノード対のリンク元のブランチノードに書き込み、
当該ノード対を削除する、
ステップを含むものであることを特徴とするカップルドノードツリーの結合方法。 - 請求項1〜7のいずれか1項に記載のカップルドノードツリーの分割方法あるいはカップルドノードツリーの結合方法をコンピュータに実行させるためのプログラム。
- 請求項1〜7のいずれか1項に記載のカップルドノードツリーの分割方法あるいはカップルドノードツリーの結合方法をコンピュータに実行させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009221744A JP4417431B2 (ja) | 2009-09-28 | 2009-09-28 | カップルドノードツリーの分割/結合方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009221744A JP4417431B2 (ja) | 2009-09-28 | 2009-09-28 | カップルドノードツリーの分割/結合方法及びプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007013211A Division JP4402120B2 (ja) | 2007-01-24 | 2007-01-24 | ビット列検索装置、検索方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009301582A JP2009301582A (ja) | 2009-12-24 |
JP4417431B2 true JP4417431B2 (ja) | 2010-02-17 |
Family
ID=41548350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009221744A Expired - Fee Related JP4417431B2 (ja) | 2009-09-28 | 2009-09-28 | カップルドノードツリーの分割/結合方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4417431B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6187478B2 (ja) * | 2013-01-11 | 2017-08-30 | 日本電気株式会社 | インデックスキー生成装置及びインデックスキー生成方法並びに検索方法 |
CN111078689B (zh) * | 2019-11-20 | 2023-05-26 | 深圳希施玛数据科技有限公司 | 一种非连续型预排序遍历树算法的数据处理方法及系统 |
-
2009
- 2009-09-28 JP JP2009221744A patent/JP4417431B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009301582A (ja) | 2009-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4402120B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4379894B2 (ja) | カップルドノードツリーの分割/結合方法及びプログラム | |
JP4271227B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4498409B2 (ja) | データベースのインデックスキー更新方法及びプログラム | |
JP4271214B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4527753B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4514771B2 (ja) | カップルドノードツリーの最長一致/最短一致検索装置、検索方法及びプログラム | |
JP4514768B2 (ja) | カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム | |
JP5473893B2 (ja) | コード列検索装置、検索方法及びプログラム | |
JP4439013B2 (ja) | ビット列検索方法及び検索プログラム | |
JP2011095849A (ja) | ビット列キー分類・分配装置、分類・分配方法及びプログラム | |
JP4417431B2 (ja) | カップルドノードツリーの分割/結合方法及びプログラム | |
JP4491480B2 (ja) | インデクス構築方法、文書検索装置及びインデクス構築プログラム | |
JP4545231B2 (ja) | カップルドノードツリーの分割/結合方法及びプログラム | |
JP4514810B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
EP2149845B1 (en) | Coupled node tree backup/restore apparatus, backup/restore method, and program | |
JP4567754B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
WO2010125742A1 (ja) | インデックス更新データ作成装置、作成方法及びプログラム | |
JP2011018296A (ja) | カップルドノードツリーのインデックスキー挿入/削除方法 | |
JP4813575B2 (ja) | ビット列検索装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090928 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20090928 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20091020 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091027 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091028 |
|
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: 20091124 |
|
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: 20091125 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121204 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121204 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121204 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151204 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |