JPH052607A - 木構造データ構造による高速探索方式 - Google Patents

木構造データ構造による高速探索方式

Info

Publication number
JPH052607A
JPH052607A JP3154377A JP15437791A JPH052607A JP H052607 A JPH052607 A JP H052607A JP 3154377 A JP3154377 A JP 3154377A JP 15437791 A JP15437791 A JP 15437791A JP H052607 A JPH052607 A JP H052607A
Authority
JP
Japan
Prior art keywords
key
block
node
pointer
data structure
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.)
Pending
Application number
JP3154377A
Other languages
English (en)
Inventor
Morio Kinoshita
盛夫 木下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP3154377A priority Critical patent/JPH052607A/ja
Publication of JPH052607A publication Critical patent/JPH052607A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】情報探索時の重複する無駄な比較を行わなくて
良く、且つ情報探索時の比較結果を有効に活用して高速
に情報探索を行えるデータ構造を構築することにより、
情報探索時の性能を向上させる。 【構成】探索を目的としたデータ構造において、データ
を識別するための識別子(キー)を複数登録する場合
に、それぞれのキーを比較しやすい大きさのブロックに
分割する。そして、キーの比較を先頭の方のブロックか
らブロック毎に行い、キーの先頭の方のブロックが等し
く、キーの後ろの方のブロックが異なる場合、等しい部
分のブロックを一つだけ保持し、異なる部分のブロック
を木構造のデータ構造になるようにポインタでつないで
保持する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ構造に関し、特
に高速な情報の登録および探索が可能なデータ構造に関
するものである。
【0002】
【従来の技術】従来より、情報の登録、探索を効率よく
実現するデータ構造として、ハッシングや木構造が用い
られている。ハッシングを用いたデータ構造では、発生
するデータ量の推定値が事前に分かっている場合、良好
な性能を得るデータ構造を作成することができる。しか
し、データ量が予測しにくく、またかなり変動する場
合、木構造の方が好ましいことが知られている。従来の
木構造のデータ構造には、2分木、AVL木、最適木、
B木、2−3木、SBB木等さまざまなものがあるが、
いずれも、木の枝の分かれ目や木の枝の先端(以下、節
点と記す)にキーを完全な形で持っていなければならな
い。非常に多くの場合、情報探索のキーは整数のように
一回の比較で大小の判定ができるものではなく、文字列
のように複数回に分割して比較しなければ大小の判定が
できないものである。しかし、従来の木構造ではポイン
タをたどり新しい節点に来る度にキーを先頭から比較し
直さなければならず、一回の比較で比較しきれないよう
なキーの比較回数の削減については全く考えられていな
い。また従来の木構造では、節点でのキーの比較で得ら
れる情報のうち、大きいか小さいかの二つの情報によっ
て、二つのポインタの中からどのポインタをたどるかを
決定しており、節点でのキーの比較で得られる情報の、
どこまでが等しくどこからが違うかという、より詳しい
情報を利用して、二つ以上のポインタの中から一つのポ
インタを選んでたどる方法については全く考えられてい
ない。
【0003】なおこの種の技術として関連するものに
は、たとえばANSI(アメリカン・ナショナル・スタ
ンダード・フォ・インフォメーション・システムズ:A
merican National Standard for information s
ystems)データベース・ランゲージ:database langua
ge−SQL(規格番号X3.135−1986)などが
ある。
【0004】
【発明が解決しようとする課題】木構造で各節点にそれ
ぞれのキーを完全な形で持つデータ構造では、木構造の
根(root)から目的のキー又はキーの挿入場所を探
すときに、ポインタをたどり目的のキーにたどり着くま
での間の各節点で、その節点にあるキーと探しているキ
ーの比較を行う。キーは通常長いものもあれば短いもの
もある。そのため、節点にあるキーと探しているキーの
比較は一回で行えないものが多く、キーを分割し複数回
に分けて比較し、比較結果(キーの大小)によってどの
ポインタをたどるかを決定する場合がほとんどである。
そのため、キーの先頭の方は同じで後ろの方が違うキー
が複数登録されている場合(多くのキーを登録する場
合、必ずこのような状態が発生する)、これらの節点で
の比較で、毎回キーの先頭の同じ部分の比較をやりなお
さなければならないという問題が生じる。
【0005】また、節点でのキーの比較でキーを複数の
ブロックに分割し、先頭の方のブロックから比較した場
合、得られる情報としては、どこまでのブロックは等し
いが、どこ以降のブロックが大きい又は小さい、という
情報が得られる。しかし、従来の木構造では、節点での
キーの比較結果によりポインタをたどるときにキーが大
きいか小さいかの情報しか利用しておらず、節点での比
較で得られる情報を十分に利用していないという問題が
ある。
【0006】本発明の目的は、このような問題を解決
し、キーの先頭の方が同じで後ろの方が違うキーが有る
場合でも無駄な比較をできるだけ少なくし、また節点で
のキーの比較で得られる情報を十分に利用して、情報探
索の性能を向上させることが可能なデータ構造を提供す
ることにある。
【0007】
【課題を解決するための手段】上記目的を達成するため
に、本発明のデータ構造(木構造)では、キーを複数登
録する場合に、それぞれのキーを比較しやすい大きさの
ブロックに分割し、キーの比較を先頭の方のブロックか
らブロック毎に行い、先頭の方のブロックが等しく後ろ
の方のブロックが異なる場合に、等しい部分のブロック
は一つだけ保持し、異なる部分以降のブロックを木構造
のデータ構造になるようにポインターでつないで保持す
ることに特徴がある。
【0008】
【作用】本発明のデータ構造では、節点からポイントさ
れた先の節点には、ポイント元の節点にセットされてい
るキーと先頭の方から比較し、異なっている所より後ろ
の部分のブロックのみがセットされている。このため、
目的のキーと節点にセットされているキーの先頭の部分
が同じで後ろの部分が違う場合、その節点からポイント
された次の節点でのキーの比較では、前の節点でのキー
の比較で異なった部分が現れた所より後ろの比較のみを
行えば良い。このため、先頭の部分が同じで後ろの部分
が異なるキーが複数登録されている場合のキーの探索時
に各節点で無駄な比較を行わなくても良い。
【0009】また、本発明のデータ構造では、節点に複
数のブロックを持ち、その各ブロック毎にポインタを持
っている。そして、キーの探索を行う場合、節点でキー
の比較を行い、どのブロックまでが等しくどのブロック
から異なるかにより、二つ以上のポインタの中からどの
ポインタをたどるかを決定できる。この結果、情報探索
の性能が向上する。
【0010】
【実施例】以下、本発明の実施例を図面により詳細に説
明する。図1は、本発明の一実施例であるデータ構造に
7つのキーを登録したときのデータ構造の図である。図
2は、図1のデータ構造の節点の構成の詳細を示した図
である。図2において1は1つ以上の連続したブロック
をセットするエリアであり、2は各ブロック毎に持つポ
インタのエリアで、そのブロックより前のブロックは等
しいが、そのブロック以降のブロックが異なり、且つそ
のブロックの値よりも小さい値のブロックを持つキーを
示す節点へのポインタ(以下、左のポインタと記す)の
エリアである。3は各ブロック毎に持つポインタのエリ
アで、そのブロックより前のブロックは等しいが、その
ブロック以降のブロックが異なり、且つそのブロックの
値よりも大きい値のブロックを持つキーを示す節点への
ポインタ(以下、右のポインタと記す)のエリアであ
る。
【0011】図1は、A,B,C,D,E,F、及びG
の7つのキーを登録した場合のデータ構造を示してい
る。4のrootは木構造の根の節点を示すポインタで
ある。A[n]は、キーAのn番目のブロックを示し、
同様にB[n],C[n],…G[n]はそれぞれのキ
ーのn番目のブロックを示す。NILはキーの終端を示
すブロックである。NILは可変長のキー登録を可能と
するために設けたものであり、固定長のキー登録のみを
行う場合NILは必要ない。図1のデータ構造に登録さ
れているキーの長さ(ブロック数)を表1に示す。表2
にそれぞれのキーの大小関係を示す。
【0012】
【表1】
【0013】
【表2】
【0014】まず、本データ構造へのキーの登録手順を
示しながら、本データ構造を説明する。キーがなにも登
録されていない状態では、木の根を示すroot4には
0がセットされている。この状態でキーAを登録する場
合、root4に節点5のアドレスをセットし、節点5
にキーAの全てのブロックをセットする。A[5]のブ
ロックの後には、キーAの終端を示すNILをセットし
ておく。
【0015】次に、この状態にキーBを登録する場合、
まずroot4が指す節点5にセットされているキーA
と、これから登録するキーBを先頭から比較する。キー
AとキーBは、先頭のブロックから異なっており、A
[1]よりB[1]の方が小さい。そこでA[1]の左
のポインタをチェックする。ポインタに何もセットされ
ていないので新しい節点6を作成し、節点6のアドレス
をA[1]の左のポインタにセットし、節点6にキーB
をセットする。
【0016】次に、この状態にキーCを登録する場合、
まずroot4が指す節点5にセットされているキーA
と、これから登録するキーCを先頭から比較する。キー
AとキーCは、先頭のブロックから異なっており、A
[1]よりC[1]の方が大きい。そこでA[1]の右
のポインタをチェックする。ポインタに何もセットされ
ていないので新しい節点7を作成し、節点7のアドレス
をA[1]の右のポインタにセットし、節点7にキーC
をセットする。
【0017】つまり、キーA、キーB、及びキーCは1
番目のブロックが異なるもの同志で2分木のデータ構造
を構成している。
【0018】次に、この状態にキーDを登録する場合、
まずroot4が指す節点5にセットされているキーA
と、これから登録するキーDを先頭から比較する。キー
AとキーDは、1番目、2番目、及び3番目のブロック
は等しいが、4番目のブロックが異なりA[4]よりD
[4]の方が大きい。そこでA[4]の右のポインタを
チェックする。ポインタに何もセットされていないので
新しい節点8を作成し、節点8のアドレスをA[4]の
右のポインタにセットする。節点8にキーDをセットす
るが、そのときにキーAのブロックと等しいD[1],
D[2]、及びD[3]はセットせずに、キーAと異な
るD[4]以降のブロックのみをセットする。
【0019】次に、この状態にキーEを登録する場合、
まずroot4が指す節点5にセットされているキーA
と、これから登録するキーEを先頭から比較する。キー
AとキーEは、1番目、2番目、及び3番目のブロック
は等しいが、4番目のブロックが異なりA[4]よりE
[4]の方が大きい。そこでA[4]の右のポインタを
チェックする。A[4]の右のポインタはアドレスがセ
ットされているので、そのポインタが指す節点8にセッ
トされているキーDとこれから登録するキーEを比較す
る。ここで、A[4]の右のポインタには、1番目から
3番目のブロックがキーAと等しいキーのみしかセット
されていないので、節点8でのキーの比較では、1番目
から3番目のブロックの比較は不要である。E[4]と
D[4]を比較するとD[4]よりE[4]のほうが小
さい。そこでD[4]の左のポインタをチェックする。
ポインタに何もセットされていないので新しい節点9を
作成し、節点9のアドレスをD[4]の左のポインタに
セットする。節点9にキーEをセットするが、そのとき
にキーA、及びキーDのブロックと等しいE[1],E
[2]、及びE[3]はセットせずに、キーA、及びキ
ーDと異なるE[4]以降のブロックのみをセットす
る。
【0020】つまり、本データ構造ではn番目までのブ
ロックが等しくn+1番目以降のブロックが異なるキー
同志で2分木を構成する。また、このときにn番目まで
のブロックは1つだけ保持し、共有している。というこ
とに特長がある。
【0021】次に、可変長のキー登録でのみ発生する特
殊なケースを説明する。A,B,C,D、及びEのキー
が登録されている状態にキーFを登録する場合、まずr
oot4が指す節点5にセットされているキーAと、こ
れから登録するキーFを先頭から比較する。キーAとキ
ーFは、先頭のブロックから異なっており、A[1]よ
りF[1]のほうが大きい。そこで、A[1]の右のポ
インタをチェックする。A[1]の右のポインタはアド
レスがセットされているので、そのポインタが指す節点
7にセットされているキーCとこれから登録するキーF
を比較する。キーCとキーFは1番目、及び2番目のブ
ロックは等しいが、キーCは2つのブロックしかなく、
キーFは4つのブロックからなる。そこで、キーCの終
端を示すブロックNILとF[3]を比較し、(NIL
はいずれのブロックの値よりも小さい値をもつものとし
た場合)NILよりもF[3]の方が大きいので、キー
Cの終端を示すNILの右のポインタをチェックする。
このNILの右のポインタに何もセットされていないの
で新しい節点10を作成し、節点10のアドレスをキー
Cの終端を示すNILの右のポインタにセットする。節
点10にキーFをセットするが、そのときにキーCのブ
ロックと等しいF[1]、及びF[2]はセットせず
に、キーCと異なるF[3]以降のブロックのみをセッ
トする。
【0022】次に、上記の状態にキーGをセットする場
合、まずroot4が指す節点5にセットされているキ
ーAと、これから登録するキーGを先頭から比較する。
キーAとキーGは、先頭のブロックから異なっており、
A[1]よりG[1]のほうが小さい。そこで、A
[1]の左のポインタをチェックする。A[1]の左の
ポインタはアドレスがセットされているので、そのポイ
ンタが指す節点6にセットされているキーBと、これか
ら登録するキーGを比較する。キーBとキーGは1番目
のブロックは等しいが、キーBは4つのブロックがあ
り、キーGは1つのブロックしかない。そこで、キーG
の終端を示すブロックNILとB[2]を比較し、B
[2]よりもNILの方が小さいので、B[2]の左の
ポインタをチェックする。このB[2]の左のポインタ
になにもセットされていないので新しい節点11を作成
し、節点11のアドレスをB[2]の左のポインタにセ
ットする。節点11にキーGをセットするが、そのとき
にキーBのブロックと等しいG[1]はセットせずに、
キーGの終端を示すNILのみをセットする。
【0023】以上のように本データ構造では、キーの終
端を示すブロックNILを使用することにより可変長の
キーも登録することができる。また、n番目までのブロ
ックが等しく、n+1番目以降のブロックが異なるキー
同志で2分木を構成しているので、目的のキーを探すと
きに重複している部分の無駄な比較が一切必要ない。更
に、2分木を構成するこれらのキーで、n番目までのブ
ロックを共有し1つしか保持しないので、重複するデー
タを複数セットする必要がなく、データ構造を作成する
ときの時間が短縮される。
【0024】本データ構造において、既に登録されてい
るキーの中から目的のキーを探索するときの手順は、前
に示したキーの登録のときに、新規の節点を追加する所
を探すときと同様の手順でポインタをたどることによ
り、目的のキーの探索が行える。この場合も、重複する
部分の無駄な比較がなく、キーの探索時間が短縮され
る。
【0025】次に、本データ構造から、目的のキーを削
除するときの手順を説明する。キーを削除する場合、ま
ず前に示したキー探索の手順で削除するキーがセットさ
れている節点を探す。そして、その節点にセットされて
いるポインタの状態によってキーの削除手順が異なる。
まず、削除するキーがセットされている節点にポインタ
が1つもセットされていない場合の削除手順を示す。こ
の場合、削除するキーがセットされている節点を指して
いるポインタをクリアすれば良い。例えば、図1のデー
タ構造からキーEを削除する場合、キーの探索を行い、
キーEは節点9にセットされていることが分かる。節点
9は、節点8のD[4]の左のポインタから指されてい
るので、節点8のD[4]の左のポインタをクリアすれ
ば節点9がデータ構造から削除され、キーEが削除でき
る。
【0026】次に、削除するキーがセットされている節
点にポインタがセットされており、且つポインタがセッ
トされているブロックの内、最も後のブロック(以下、
このブロックを置き換え先頭ブロックと記す)のポイン
タが、左のポインタか右のポインタのいずれか一方しか
セットされていない場合の削除手順を示す。この場合、
削除するキーがセットされている節点の置き換え先頭ブ
ロック以降のブロック及びポインタに、置き換え先頭ブ
ロックの左のポインタ又は右のポインタが指す節点のブ
ロック及びポインタの内容を全て移せば良い。例えば、
図1のデータ構造からキーAを削除する場合、キーの探
索を行い、キーAは節点5にセットされていることが分
かる。節点5の中でポインタがセットされているブロッ
クは、A[1]とA[4]だが、A[4]の方が後のブ
ロックなのでA[4]が置き換え先頭ブロックとなる。
A[4]のブロックには右のポインタしかなく、節点8
を指しているので、節点5のA[4]以降のブロック及
びポインタに節点8のブロック及びポインタの内容をコ
ピーする。そうすると図3の状態となる。A[1],A
[2]、及びA[3]は、D[1],D[2]、及びD
[3]と等しいから、節点5にセットされているキーは
AではなくDとなり、このことからキーAの削除が行わ
れていることが分かる。また、その他の登録状態は変わ
っていない。
【0027】次に、削除するキーがセットされている節
点にポインタがセットされており、且つポインタがセッ
トされているブロックの内、最も後のブロック(置き換
え先頭ブロック)の左のポインタ及び右のポインタの両
方がセットされている場合の削除手順を示す。この場
合、まず削除するキーがセットされている節点の置き換
え先頭ブロックの右のポインタ(左のポインタをたどる
方法も考えられる)が指す節点を根(root)とした
部分木構造を考える。この部分木構造で、各節点の先頭
のブロックの左のポインタだけをたどり、節点の先頭の
ブロックの左のポインタがセットされていない節点(以
下、置き換え元節点と記す)を探す。置き換え元節点が
見つかったら置き換え元節点を指しているポインタを、
置き換え元節点の先頭のブロックの右のポインタの内容
で置き換える。次に、削除するキーがセットされている
節点の置き換え先頭ブロック以降のブロックの内容を置
き換え元節点にセットされているブロックの内容で置き
換える。また削除するキーがセットされている節点の置
き換え先頭ブロックより1つ後のブロック以降のポイン
タを置き換え元節点の2番目以降のブロックのポインタ
で置き換えれば良い。例えば、図4のデータ構造からキ
ーHを削除する場合、キーの探索を行い、キーHは節点
12にセットされていることが分かる。節点12の中で
ポインタがセットされているブロックは、H[4]だけ
なのでH[4]が置き換え先頭ブロックとなる。H
[4]のブロックには右のポインタ及び左のポインタの
両方がセットされている。そこで、H[4]の右のポイ
ンタが指す節点14を根(root)とする部分木構造
で、各節点の先頭のブロックの左のポインタだけをたど
り、節点の先頭のブロックの左のポインタがセットされ
ていない節点(置き換え元節点)を探す。まず節点14
の先頭のブロックの左のポインタにはアドレスがセット
されているのでポインタをたどり、次に節点15をチェ
ックする。節点15の先頭のブロックの左のポインタは
セットされていないので、節点15が置き換え元節点と
なる。置き換え元節点が見つかったので置き換え元節点
を指している節点14のJ[4]の左のポインタを置き
換え元節点15の先頭のブロックK[4]の右のポイン
タの内容で置き換える。次に、削除するキーがセットさ
れている節点12の置き換え先頭ブロックH[4]以降
のブロックを、置き換え元節点15にセットされている
ブロックの内容で置き換え、また削除するキーがセット
されている節点12の置き換え先頭ブロックH[4]よ
り1つ後のブロック以降のポインタを置き換え元節点1
5の2番目以降のブロックのポインタで置き換える。す
ると図5の状態となる。H[1],H[2]、及びH
[3]は、K[1],K[2]、及びK[3]と等しい
はずであるから、節点12にセットされているキーはH
ではなくキーKとなり、このことからキーHの削除が行
われていることが分かる。また、その他のキーの登録状
態は変わっていない。
【0028】以上のように、本データ構造からのキーの
削除の手順は、2分木のデータ構造からキーを削除する
ときの手順と類似している。ただし、削除するキーがセ
ットされている節点を探索するときの手順は前に示した
ものが使用できるので、この場合も、重複する部分の無
駄な比較がなく、この分の時間が短縮できる。
【0029】また、本データ構造は2分木の考えを使用
しており、各節点はより大きいものへのポインタ、又は
より小さいものへのポインタでつながれているので、本
データ構造に登録されたキーはおのずとソートされてい
ることは明らかである。
【0030】このように、本実施例に示したデータ構造
においては、可変長のキーの登録、探索、削除、及びソ
ートを行うことができる。本実施例では、n番目までの
ブロックが等しくn+1番目以降のブロックが異なるキ
ー同志で通常の2分木を構成するものであるが、この他
にn番目までのブロックが等しくn+1番目以降のブロ
ックが異なるキー同志でAVL木を構成する方法、最適
木を構成する方法、2−3木を構成する方法等さまざま
な方法が考えられるので、キー探索の最悪の場合の時間
を短縮する必要がある場合は、これらの方法を使用する
こともできる。
【0031】
【発明の効果】以上説明したように、本発明によれば、
可変長のキーの登録、探索、削除、及びソートを行うこ
とができるデータ構造を作ることができる。このとき、
本データ構造ではキーの比較を先頭の方のブロックから
ブロック毎に行い、先頭の方のブロックが等しく後ろの
方のブロックが異なる場合に、等しい部分のブロックは
一つだけ保持し、異なる部分以降のブロックを木構造の
データ構造になるようにポインターでつないで保持して
いる。このため、目的のキーが登録されている節点、ま
たは目的のキーを追加する所を探索するときに、キーの
内容が重複する部分の無駄な比較がない。また、キーの
追加の場合は、キーの重複する部分のデータのセットは
1回だけでよい。更に、通常の2分木の場合、1つの節
点での比較により、 ・等しい ・大きい ・小さい の三つの情報しか得られない。このため、一つの節点で
の比較結果により、2つのポインタの中から1つのポイ
ンタを選んでたどることしかできない。しかし、本発明
の方式では、一つの節点での比較により、 ・等しい ・どこのブロックまで等しく、どこ以降のブロックが大
きい ・どこのブロックまで等しく、どこ以降のブロックが小
さい のように、より詳しい情報を得ることができる。このた
め、一つの節点での比較結果により、2つ以上のポイン
タの中から1つのポインタを選んでたどることができ
る。従って、目的のキーを探索し目的のキーがセットさ
れている節点にたどり着くまでに辿らなければならない
ポインタの数が削減される。そのため、従来の木構造の
データ構造でキーの登録、探索、削除、及びソートを実
施する場合より短い時間でこれらの機能を実現できる。
また、多くのキーを登録し、キーの重複する部分が多い
場合は、バイナリサーチと比較しても、より短い時間で
探索を実行することができる。
【図面の簡単な説明】
【図1】本発明の一実施例であるデータ構造にA,B,
C,D,E,F、及びGの7つのキーを登録した場合の
データ構造を示す図である。
【図2】節点の構成を示す図である。
【図3】図1のデータ構造からキーAを削除した後のデ
ータ構造を示す図である。
【図4】本発明の一実施例であるデータ構造にH,I,
J,K,L、及びMの6つのキーを登録した場合のデー
タ構造を示す図である。
【図5】図4のデータ構造からキーHを削除した後のデ
ータ構造を示す図である。
【符号の説明】
1…ブロックをセットするエリア、 2…左のポインのタエリア、 3…右のポインタのエリア、 4…rootポインタ、 5〜17…節点。

Claims (1)

  1. 【特許請求の範囲】 【請求項1】探索を目的としたデータ構造において、デ
    ータを識別するための識別子(以下、キーと記す)を複
    数登録する場合に、それぞれのキーを一つ以上に分割し
    (分割したキーを以下、ブロックと記す)、キーの比較
    を先頭の方のブロックからブロック毎に行い、キーの先
    頭の方のブロックが等しくキーの後ろの方のブロックが
    異なる場合に、等しい部分のブロックは一つだけ保持
    し、異なる部分以降のブロックを木構造のデータ構造に
    なるようにポインターでつないで保持することを特徴と
    する木構造データ構造による高速探索方式。
JP3154377A 1991-06-26 1991-06-26 木構造データ構造による高速探索方式 Pending JPH052607A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3154377A JPH052607A (ja) 1991-06-26 1991-06-26 木構造データ構造による高速探索方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3154377A JPH052607A (ja) 1991-06-26 1991-06-26 木構造データ構造による高速探索方式

Publications (1)

Publication Number Publication Date
JPH052607A true JPH052607A (ja) 1993-01-08

Family

ID=15582823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3154377A Pending JPH052607A (ja) 1991-06-26 1991-06-26 木構造データ構造による高速探索方式

Country Status (1)

Country Link
JP (1) JPH052607A (ja)

Similar Documents

Publication Publication Date Title
JP2670383B2 (ja) 部分キー分岐機能を備えたプレフィックス探索ツリー
US6564211B1 (en) Fast flexible search engine for longest prefix match
US5488717A (en) MTree data structure for storage, indexing and retrieval of information
US5978795A (en) Temporally ordered binary search method and system
CN107111623A (zh) 用于基于词典的压缩的并行历史搜索和编码
JPH11212980A (ja) インデクス作成方法および検索方法
US7873041B2 (en) Method and apparatus for searching forwarding table
US7756859B2 (en) Multi-segment string search
JPH10240754A (ja) テキストデータ登録検索方法
US7222129B2 (en) Database retrieval apparatus, retrieval method, storage medium, and program
JPH08194718A (ja) 文書検索方法および装置
JP2001527240A (ja) データ構造内の管理
US20170242880A1 (en) B-tree index structure with grouped index leaf pages and computer-implemented method for modifying the same
JP3518933B2 (ja) 構造化文書検索方法
CN111581440B (zh) 硬件加速b+树操作装置及其方法
JP3284064B2 (ja) デジタル探索装置
JPH052607A (ja) 木構造データ構造による高速探索方式
JP3859044B2 (ja) インデクス作成方法および検索方法
JPH08190571A (ja) 文書検索方法
JPH0581102A (ja) テーブル管理方式
JP2880192B2 (ja) 文字列検索方法及び装置
CN120123551B (zh) 处理数据的装置、方法、设备及计算机可读存储介质
US20150278259A1 (en) Entry insertion apparatus, method, and program
JP3087701B2 (ja) 排他制御装置
JPH09305449A (ja) データベース管理システム