TW200834356A - Splitting/connecting method for coupled node tree, and program - Google Patents
Splitting/connecting method for coupled node tree, and program Download PDFInfo
- Publication number
- TW200834356A TW200834356A TW096143047A TW96143047A TW200834356A TW 200834356 A TW200834356 A TW 200834356A TW 096143047 A TW096143047 A TW 096143047A TW 96143047 A TW96143047 A TW 96143047A TW 200834356 A TW200834356 A TW 200834356A
- Authority
- TW
- Taiwan
- Prior art keywords
- node
- tree
- key
- processing
- search
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/02—Indexing scheme relating to groups G06F7/02 - G06F7/026
- G06F2207/025—String search, i.e. pattern matching, e.g. find identical word or best match in a string
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
200834356 九、發明說明 【發明所屬之技術領域】 本發明,係有關於使用記憶位元列之樹狀的資料構造 ,而從位元列之集合中來檢索出所期望的位元列之檢索方 法者,特別是,係有關於使用有本申請人在日本特願 2006- 1 8 78 27中所提案的耦合節點樹之分割/結合方法及其 程式者。
【先前技術】 近年,社會之資訊化係在進展,而大規模之資料庫亦 成爲被利用在各個領域中。爲了從此種大規模之資料庫而 檢索出記錄,通常係將與各記錄所被記憶之位址附加有對 應關係的記錄內之項目作爲索引鍵並進行檢索,而找出所 期望的記錄。又,在全文檢索中之文字列,亦可看作爲文 章的索引鍵。
而,由於此些之索引鍵係作爲位元列而被表現,因此 資料庫的檢索係可回歸於位元列之檢索。 爲了高速進行上述位元列之檢索,從先前起,即已進 行有對記憶位元列之資料構造所做的各種設計。作爲此些 之其中一例,係周知有所謂的帕翠西雅樹(Patricia tree)之 樹構造。 圖1 ’係爲展示被使用於上述之先前的檢索處理中之 帕翠西雅樹之其中一例者。帕翠西雅樹之節點,係包含有 :索引鍵、檢索鍵之檢查位元位置、左右之連結指標,而 -4- 200834356 被構成。雖並未明示,但是,不用說,在節點中,係被包 含有用以對對應於索引鍵的記錄作存取(a c c e s s )之資訊。 在圖1之例中,保持索引鍵“1 000 1 0”之節點1 750a係 成爲根節點,該檢查位元位置係爲〇。在節點i 75 〇a之左 連結1 7 4 0 a,係被連接有節點1 7 5 0 b,在右連結1 7 4 1 a,係 被連接有節點1 750f。
節點1 7 5 0 b所保持之索引鍵係爲“ 〇 1 〇 〇 1 χ,,,檢查位元 位置20 3 〇b係爲1。在節點1750b之左連結1740b,係被連 接有節點1 750c,在右連結1741b,係被連接有節點1 7 5 0d 。節點1 7 5 0 c所保持之索引鍵係爲“ 〇 〇 〇 1 1丨,,,檢查位元位 置係爲3。節點1 750d所保持之索引鍵係爲“011010”,檢 查位元位置係爲2。 從節點1 7 5 0 c而被連接有實線之部分,係爲表示節點 1 7 5 0 c之左右的連結指標者,未被連接有虛線的左指標 174 0c ’係表示該欄係爲空欄。被連接有虛線之右指標 1 7 4 1 c的虛線之連接目標,係表示指標所展示的位址,在 現在的情況,係表示右指標爲指定節點1 7 5 0 c。 節點1 7 5 0 d之右指標1 7 4 1 d,係指定有節點i 7 5 〇 d本身 ,在左連結1 7 4 0 d,係被連接有節點〗7 5 〇 e。節點1 7 5 0 e所 保持之索引鍵係爲“010010”,檢查位元位置係爲5。節點 1 7 5 0 e之左指標1 7 4 0 e,係指向節點丨7 5 〇 b,右指標1 7 4 1 e ,係指向節點1 7 5 0 e。 又’節點1 7 5 0 f所保持之索引鍵係爲“丨〇丨〇丨丨”,檢查 位元位置173 Of係爲2。在節點175 〇f之左連結174〇f,係 -5- 200834356 被連接有節點1750g,在右連結I741f,係被連接有節點 1750h ° 節點1 7 5 0 g所保持之索引鍵係爲“ 1 〇 〇 〇 1 1 ”,檢查位元 位置1 7 3 0 g係爲5。節點1 7 5 0 g之左指標1 7 4 0 g,係指向節 點1 75 0a,右指標1741g,係指向節點I 750g。
節點1 750h所保持之索引鍵係爲“101100”,檢查位元 位置173 Oh係爲3。節點175 Oh之左指標174 Oh,係指向節 點1 75 0f,右指標1741h,係指向節點l 750h。 於圖1之例中,係以隨著從根節點1 7 5 〇 a而在樹上下 降,各節點之檢查位元位置爲變大的方式而被構成。 當以某一檢索鍵而進行檢索時,係從根節點起而依序 對被保持於各節點之檢索鍵的檢查位元位置作檢查,並進 行關於檢查位元位置之位元値係爲〇或是1的判定,若是爲 1,則到達右連結,若是0,則到達左連結。而後,若是連 結目標之檢查位元位置並未較連結源頭之節點的檢查位元 位置大’亦即是,若是連結目標係並非爲朝向下方而係回 到上方(於圖1中,將以虛線所示之此倒退的連結稱爲退後 連結),則進行連結目標之節點的索引鍵與檢索鍵之比較 。比較之結果,若是相等,則係保證檢索爲成功,若是不 相等’則係保證檢索爲失敗。 如上述所示,在使用有帕翠西雅樹的檢索處理中,雖 然具有:僅需對必要之位元作檢查,即可進行檢索;以及 鍵全體之比較係只需一次即可等的優點,但是亦會有:由 於從各節點必定會分出有2個的連結,因此會使記憶容量 -6- 200834356 增大;或是因爲退後連接之存在所造成的判定處理之複雜 化;因爲必須在藉由退後連結而倒退的情況下才會進行與 索引鍵間之比較所致的檢索處理之延遲;以及在追加、削 除等之資料維護上的困難性等等的缺點。 作爲用以解決此些之帕翠西雅樹的缺點者,例如係有
在下述之專利文獻1中所揭示的技術。在下述之專利文獻1 中所記載的帕翠西雅樹中,係藉由將下位之左右的節點記 憶在連續之區域中,而削減指標之記憶容量,同時,藉由 將用以表示接下來之連結是否爲退後連結的位元設置在各 節點中,而減輕退後連結之判定處理的負擔。 然而,在下述專利文獻1中所揭示者,亦係由於一個 的節點係必定佔據有索引鍵之區域與指標之區域,以及由 於將下位之左右的節點記憶在連續之區域中,而將指標設 爲1個,因此造成就算是在例如圖1所示之帕翠西雅樹的最 下段之左指標1 740c、右指標I741h等的部分,亦需要分 配有與節點相同容量之記憶區域等的原因,而使得記憶容 量之削減效果並不是很大。又,關於因退後連結所致之檢 索處理的延遲問題,或是追加削除等之處理係爲困難的事 態,亦並未被改善。 [專利文獻1]日本特開2001-357 070號公報 【發明內容】 作爲解決上述之先前的檢索手法中之問題點的方法, 本申請人,係在日本特願2 〇 〇 6 - 1 8 7 8 2 7中,提案有一種使 200834356
用有耦合節點樹(c 〇 u p 1 e d η 〇 d e t r e e)之位元列檢索,該耦 合節點樹,係爲由根節點(root node)、與被配置於相鄰接 之記憶區域中的分支節點(branch node)與葉節點(leaf node)、又或是分支節點彼此又或是葉節點彼此之節點對 所成的使用於位元列檢索之樹(tree),根節點係爲表示樹 之起點的節點,當該樹之節點係爲1個時,係身爲葉節點 ’而當該樹之節點係爲2個以上時,則係爲前述分支節點 ’前述分支節點,係包含有表示進行位元列檢索之檢索鍵 的辨別位元位置、以及連接(link)目標之節點對的其中一 方之節點的位置之資訊,前述葉節點,係包含有由檢索對 象之位元列所成的索引鍵(index key)。 在上述申請中,係展示有:從被給予之索引鍵的集合 中’來產生耦合節點樹之方法,和從耦合節點樹來檢索出 單一的索引鍵之手法等,使用有耦合節點樹之基本的檢索 手法。 又,在位元列之檢索中,係存在有例如求取最大、最 小値,或是求取某範圍內之値等的各種的檢索要求。於此 ,本申請人,係在日本特願2006-293619中,提案了:求 取出親合節點樹之任意的部分木中所包含之索引鍵的最大 値/最小値之手法等。 然而’於近年’隨著資訊處理技術之進展,對資訊服 務的要求亦更加擴大’而成爲更爲嚴格者。在資訊服務之 提供上,成爲基本的’係爲資料庫之建構,以及從該資料 庫中之資訊的取出,但是,積蓄在資料庫中之資料量係曰 -8 - 200834356 益增大,而逐漸成爲極爲巨大者。
本申請人於先前所提案之檢索手法,雖係爲使上述之 逐漸巨大化的資料庫之高速檢索成爲可能者,但是,隨著 資料庫之巨大化的同時,對應於其之耦合節點樹,雖然相 較於習知之樹構造,係可減少記憶容量,然而仍會成爲相 當大。另一方面,在各種記憶手段之記憶容量中,係分別 有其限制,爲了建構較爲經濟的系統,有必要將各種存取 速度、記憶容量之記憶手段作組合而利用之。 又,資料庫本身亦有可能被進行物理性之分割,或是 被分散設置。 故而,係成爲有必要將1個的耦合節點樹作分割、又 或是再結合。 於此,本發明之目的,係在於提供一種:將耦合節點 樹分割爲2個,又或是將2個的耦合節點樹作結合之手法。 若藉由本發明之其中一種實施形態,則係提供一種耦 合節點樹之分割方法,其係指定對成爲分割點之索引鍵所 決定的分割鍵,並求取出處理源頭之耦合節點樹的索引鍵 之最小値或是最大値,並將該些之索引鍵依序削除,直到 到達成爲分割點之索引鍵爲止,將削除後之索引鍵,插入 至處理目標之耦合節點樹中,藉由此,而將耦合節點樹分 割。 又’若藉由本發明之另外一種實施形態,則係在上述 分割方法中,於依序求取處理源頭之耦合節點樹的索引鍵 之最小値或是最大値的處理中,係藉由在上一次之求取出 -9-
200834356 最小値或是最大値時的檢索路徑之履歷,來設 節點而進行之。 又,若藉由本發明之更另外一種實施形態 一種耦合節點樹結合方法,其係將2個的耦合 合,藉由以其中一方之耦合節點樹作爲在上述 之處理源頭並進行削除處理,而將另外一方作 並進行插入處理,而進行之。 又,若藉由本發明之更另外一種實施形態 一種耦合節點樹之分割方法,其係指定對成爲 引鍵作決定之分割鍵,並求取出:身爲處理源 樹之部分樹、且係將分割鍵作爲其之最大値或 之中,身爲最大之部分樹的根節點之分割節點 以前述分割節點作爲根節點之部分樹的分割節 ,藉由此,來產生新的處理目標之耦合節點樹 分割節點樹從前述處理源頭耦合節點樹中削除 又,若藉由本發明之更另外一種實施形態 一種將2個耦合節點樹作結合之方法,其係根 之耦合節點樹的索引鍵之最大値或是最小値、 耦合節點樹的索引鍵之最小値或是最大値,其 分位元位置’來求取出身爲從處理源頭之耦合 分割出來且與處理目標相結合之部分樹的分割 ,並將該分割結合節點樹根據差分位元位置來 之耦合節點樹作結合。 進而’若藉由本發明之更另外一種實施形 定檢索開始 ,則係提供 節點樹之結 分割方法中 爲處理目標 ,則係提供 分割點之索 頭耦合節點 是最小値者 ,而將身爲 點樹作插入 ,並將前述 〇 ,則係提供 據處理源頭 與處理目標 兩者間之差 節點樹而被 結合節點樹 與處理目標 態,則係提 -10- 200834356 供一種程式,其係使電腦實行上述耦合節點樹之分割方法 或是耦合節點樹之結合方法。 若藉由本發明,則能夠以簡單的處理來有效率地實行 耦合節點樹之分割/結合處理,就算是耦合節點樹之大小 變大,亦能使其成爲易於處理者。 【實施方式】
首先,針對由本申請人在先前的上述申請案中所提案 之成爲本發明的前提之耦合節點樹,對將耦合節點樹儲存 於配列中之例作說明。作爲表示分支節點所保持之連結目 標的位置之資料,亦可使用記憶裝置之位址資訊,但是, 藉由使用由可將分支節點或是葉節點之中所佔有的區域之 記憶容量較大者作儲存之配列要素所成的配列,能將節點 之位置以配列號碼來表示,而能削減位置資訊之資訊量。 圖2A ’係爲說明被儲存於配列中之耦合節點樹的構 成例之圖。 若參考圖2A,則節點1〇1係被配置在配列100之配列 號碼1 0的配列要素中。節點1 〇 i,係由節點種類別i 02、辨 別位元位置103以及代表節點號碼1〇4所構成。節點種類別 1 02係爲G,並表示節點1 〇〗係爲分支節點。在辨別位元位 置1 03中,係被儲存有1。在代表節點號碼〗〇4中,係被記 億有連結目標之節點對的代表節點之配列號碼20。另外, 於以下’爲了表記之簡略化,亦有將被儲存於代表節點號 碼中之配列號碼稱爲代表節點號碼的情形。又,亦有將被 -11 - 200834356 儲存於代表節點號碼中之配列號碼,以附加於該節點之符 號或者是附加於節點對之符號來作代表的情況。
在配列號碼20之配列要素中,係被儲存有身爲節點對 111之代表節點的節點[0]112。而,在相鄰接之下一個配 列要素(配列號碼20+ 1)中,係被儲存有與代表節點成爲 一對之節點[1 ] 1 1 3。在節點[0] 1 1 2之節點種類別1 1 4中係被 儲存有0 ;在辨別位元位置1 1 5中係被儲存有3 ;在代表節 點號碼1 1 6中係被儲存有3 0。又,在節點[1 ] 1 1 3之節點種 類別1 1 7中係被儲存有1,而表示節點[1 ] η 3係爲葉節點。 在索引鍵118中,係被儲存有”0001 ”。當然,與針對帕翠 西雅樹而在先前所述相同地,於葉節點中係包含有對與索 引鍵相對應之記錄進行存取的資訊,但是,於表記中係省 略。 另外,將代表節點以節點[〇]來表示,將與其成對之 節點以節點[1]來表示。又,亦有將被儲存於某配列號碼 之配列要素中的節點,稱爲該配列號碼之節點的情況,而 也有將被儲存有節點之配列要素的配列號碼,稱爲節點之 配列號碼的情況。 由被儲存於配列號碼3 0以及3 1之配列要素中的節點 122與節點123所成之節點對121的內容,係被省略。 在被儲存有節點[0] 112、節點[1]1 13、節點122、以及 節點1 2 3的配列要素中分別被附加的〇或是1,係爲在以檢 索鍵來進行檢索的情況時,用以表示對節點對之何一節點 作連結。將在前段之分支節點的辨別位元位置中之檢索鍵 -12- 200834356 的位元値〇或是1,加到代表節點號碼上,並對此配列號碼 之節點作連結。 故而’藉由在前段之分支節點的代表節點號碼上,再 加上檢索鍵之辨別位元位置的位元値,而能求取出連結目 標之節點所被儲存之配列要素的配列號碼。
另外,在上述之例中,係採用節點對之被配置的配列 號碼中之較小的一方作爲代表節點號碼,但是,不用說, 亦可採用較大的一方。 圖2Β,係爲將耦合節點樹之樹狀構造作槪念展示的圖 。圖示之6位元的索引鍵,係與圖1所例示之帕翠西雅樹者 相同。 符號210a所示,係爲根節點。於圖示之例中,根節 點210a係作爲被配置於配列號碼220中之節點對201a的代 表節點。 作爲樹狀構造,於根節點2 1 Oa之下方係配置有節點 對201b,而於其下層係配置有節點對201c與節點對201f, 在節點對201f之下層,係被配置有節點對20 lh與節點對 2〇lg。在節點對201c之下方係被配置有節點對201d,並 更進而在其下方被配置有節點對2 0 1 e。 被附加在各節點之前的〇或是1的符號,係與於圖2 A 中所說明之被附加在配列要素之前的符號相同。因應於檢 索鍵之辨別位元位置的位元値而探索樹,並找出檢索對象 之葉節點。 在圖示之例中,根節點2 1 0 a之節點種類別2 6 0 a係爲0 -13- 200834356 ,表示其係爲分支節點,而辨別位元位置230a係顯示〇。 代表節點號碼係爲220a,此係爲儲存有節點對201b之代 表節點2 1 Ob的配列要素之配列號碼。
節點對201b係以節點210b與21 lb所構成,此些之節 點種類別260b、261b係均爲0,而表示其係爲分支節點。 在節點210b之辨別位元位置230b,係被儲存有1,在連結 目標之代表節點號碼中,係被儲存有節點對20 1 c之代表 節點210c所被儲存之配列要素的配列號碼220b。 在節點210c之節點種類別260c中,由於係被儲存有1 ’因此此節點係爲葉節點,故而,係包含有索引鍵。在索 引鍵2 5 0 c中,係被儲存有“ 〇 〇 〇 1 1 1,,。另一方面,節點2 1 1 c 之節點種類別26 1 c係爲〇,辨別位元位置23 1 c係爲2,在 代表節點號碼中,係被儲存有節點對20 1 d之代表節點 2 1 0d所被儲存之配列要素的配列號碼22〗c。 節點210d之節點種類別260d係爲〇,辨別位元位置 2 3 0 d係爲5,在代表節點號碼中,係被儲存有節點對2 〇 j e 之代表節點21 0e所被儲存之配列要素的配列號碼22〇d。 與節點2 1 0 d成對之節點2 1 1 d的節點種類別2 6 1 d係爲1, 在索引鍵251d中,係被儲存有“〇11〇1〇”。 節點對201e之節點21〇e、21 le的節點種類別260e、 26 1 e係均爲1 ’表示其雙方均爲葉節點,而在各別的索引 鍵250e、251e中,作爲索引鍵,係被儲存有“〇1〇〇1〇,,和 “ 0 1 0 0 1 1,,〇 在身爲節點201b之另外一方的節點211b之辨別位元 -14- 200834356 位置23 1 b,係被儲存有2,在連結目標之代表節點號碼中 ,係被儲存有節點對201f之代表節點21 Of所被儲存之配 列要素的配列號碼2 2 1 b。
節點對201f之節點210f、211f的節點種類別260f、 261f係均爲0,表示其雙方均爲分支節點。在各別之辨別 位元位置23 Of、23 If中,係被儲存有5、3。在節點210f 之代表節點號碼中,係被儲存有節點對201g之代表節點 2 1 0 g所被儲存之配列要素的配列號碼2 2 0 f,在節點2 1 1 f 之代表節點號碼中,係被儲存有身爲節點對20 lh之代表 節點的節點[0]21 lh所被儲存之配列要素的配列號碼221f 節點對201 g之節點210g、21 lg的節點種類別260g、 261g係均爲1,表示其雙方均爲葉節點,而在各別的索引 鍵 2 5 0 g、2 5 1 g 中,係被儲存有 “ 1 〇 〇 〇 1 〇 ” 和 “ 1 〇 〇 〇 1 1,’。 又,同樣的’身爲節點對20 lh之代表節點的節點 [0]210h、與和其成對之節點[l]211h的節點種類別260h、 26 lh係均爲1,表示其雙方均爲葉節點,而在各別的索引 鍵 250h、25 lh 中,係被儲存有 “1 〇1 〇1 1”和 “1 〇 1 1 〇〇”。 以下,針對從上述之樹中對索引鍵“1 000 1 0”作檢索的 處理之流程作簡單說明。辨別位元位置,係設爲從左起而 爲 0、1、2、…。 首先,將位元列“ 1 0001 0”作舉檢索鍵,而從根節點 210a起開始進行處理。根節點210a之辨別位元位置23〇a 由於係爲〇,因此若是檢查檢索鍵“1 000 1 0”之辨別位元位 -15- 200834356 置〇的位元値,則發現其係爲1。於此,對將儲存有代表節 點號碼之配列號碼220a中加上1之後的配列號碼之配列要 素中所儲存的位元2 1 1 b作連結。在節點2 1 1 b之辨別位元 位置23 1 b中,由於係被儲存有2,因此,若是檢查檢索鍵 “10001 0”之辨別位元位置2處的位元値,則發現其係爲0, 故而,對儲存有代表節點號碼之配列號碼22 1 b的配列要 素中所儲存之節點2 1 Of作連結。
在節點210f之辨別位元位置230f中,由於係被儲存 有5,因此,若是檢查檢索鍵“ 1 000 1 0”之辨別位元位置5的 位元値,則發現其係爲〇,故而,對代表節點號碼之被儲 存的配列號碼220f之配列要素中所儲存的節點21 0g作連 結。 由於節點210g之節點種類別260g係爲1 ’而代表其係 爲葉節點,因此,將索引鍵25 0g讀出,並與檢索鍵作比 較,其結果,兩者係均爲“ 1 000 1 0”,而爲一致。如此地, 進行使用有耦合節點樹之檢索。 接下來,參考圖2B,並針對耦合節點樹之構成的意義 作說明。 耦合節點樹之構成,係藉由索引鍵之集合而被規定。 在圖2 B之例中,根節點2 1 0 a之辨別位元位置爲0的原因, 係因爲在圖2B中所例示之索引鍵中,具備有第〇位元爲〇 者以及爲1者之故。第〇位元爲〇之索引鍵的群組,係被分 類至節點2 1 Ob之下,而第〇位元爲1之索引鍵的群組,係 被分類至節點2 1 1 b之下。 -16- 200834356 節點21 lb之辨別位元位置爲2的原因,係因爲其係反 映有:在節點21 lh、210h、21 lg、210g中所儲存之第0位 元爲1的索引鍵,其第1位元係全部等於〇,而爲在第2位元 才開始有所不同者一般之索引鍵的集合之性質之故。 以下’與第〇位元的情況相同地,第2位元爲丨者,係 被分類至節點2 1 1 f側,而第2位元爲0者,則被分類至節 點21 Of側。
而,第2位元爲1的索引鍵,由於係爲從第3位元而開 始有所不同者,因此在節點2 1 1 f之辨別位元位置中,係 被儲存有3,而在第2位元爲0的索引鍵中,由於其第3位元 與第4位元均爲相等,而從第5位元才開始有所不同,因此 ,節點2 1 Of之辨別位元位置中,係被儲存有5。 在節點211f之連結目標中,由於第3位元爲1者與爲0 者係分別各只有1個,因此節點21 Oh、21 lh係成爲葉節點 ,並分別在索引鍵25 Oh與251h中被儲存有‘101011,與 ‘101100’ 〇 就算假設在索引鍵之集合中,替代“101100”而被包含 有“101 101”或是“101110”,亦由於其之到第3位元爲止係 與“101 100”相等,因此僅會使被儲存在節點21 lh中之索 引鍵改變,而不會使樹狀構造之本身改變。但是,若是除 了 “ 1 0 1 1 0 0 ”之外,再加上亦包含有“ 1 0 1 1 0 1 ”,則節點2 1 1 h 係成爲分支節點,而其辨別位元位置係成爲5。若是所追 加之索引鍵係爲“ 1 〇 111 〇”,則辨別位元位置係成爲4。 如以上所說明一般,耦合節點樹之構造,係藉由被包 -17- 200834356 含於索引鍵之集合中的各索引鍵之各位元位置的位元値而 被決定。 而,若更進一步作說明,則由於在每一成爲相異位元 値之位元位置處,均分歧有位元値爲“1”之節點與位元値 爲“〇”之節點,因此,若是以節點[1]側與樹之深度方向爲 優先而探索葉節點,而於該些中所儲存之索引鍵,係成爲 節點21 lh之索引鍵251h的“101 100”、節點210h之索引鍵
250h 的“101011”.....節點210c 之索引鍵250c 的 “000111”,而被以降順來排序。 亦即是,在耦合節點樹中,索引鍵係被排序而配置在 樹上。 當以檢索鍵來作檢索時,則係成爲探索索引鍵之在耦 合節點樹上所被配置之路徑,例如,若是檢索鍵係爲 “101 100”,則係能到達節點21 lh。又,從上述之說明,可 以想像到,就算是當使用“ 1 〇 11 〇 1 ”或是“ 1 0 1 1 1 0 ”來作爲檢 索鍵的情況時,亦會到達節點2 1 1 h,但是,藉由將其與索 引鍵25 lh作比較,檢索會成爲失敗。 又,就算是在例如以“1 001 00”來作檢索的情況時,亦 由於在節點210a、21 lb、21 Of的連結路徑中檢索鍵的第3 位元與第4位元係不會被使用’且“1 001 00”的第5位元係爲 〇,因此係和以“ 1 0001 〇”來檢索的情況時相同,而成爲到 達節點210g。如此這般,係成爲使用因應於被儲存在耦合 節點樹中之索引鍵的位元構成之辨別位元位置而進行分歧 -18- 200834356 圖3 ’係爲說明用以實施本發明之硬體的構成例之圖
本發明之檢索裝置所致的檢索處理以及資料維護,係 藉由至少具備有中央處理裝置3 02以及快取記憶體3 03的資 料處理裝置301,並使用資料儲存裝置308而被實施。資料 儲存裝置3 08,係具備有:耦合節點樹所被配置之配列309 、以及記憶有在檢索中所經過之節點所被儲存的配列要素 之配列號碼的探索經路堆疊3 1 0,該資料儲存裝置3 0 8,係 可藉由主記憶裝置3 05又或是外部記憶裝置3〇6而實現,或 者是’亦可使用經由通訊裝置307而被連接之被配置在遠 方的裝置。 在圖3之例示中,主記憶裝置3 05、外部記憶裝置306 以及通訊裝置3 0 7 ’雖係藉由一條的匯流排3 〇 4而被連接於 貝料處理裝置301 ’但是’連接方法係並不限定於此。又 ’亦可將主記憶裝置305設爲在資料處理裝置301內者,且 亦可將探索路徑堆疊310作爲中央處理裝置302內之硬體而 實現之。或者是,不用說,亦可使外部記憶裝置306具有 配列3 0 9,或是使主記憶裝置3 0 5具備有探索路徑堆疊3 1 〇 等,而因應於可使用之硬體環境、索引鍵集合之大小等, 來適宜地對硬體構成作選擇。 又,雖然並未特別圖示,但是,當然地,爲了將在處 理途中所得到的各種値使用於其後之處理中,故因應於各 個處理,會暫時使用到記憶裝置。 接下來,藉由參考圖4〜圖11B,在爲了理解本發明所 -19-
200834356 需要之範圍內,對在上述之申請中,由本申請 使用有耦合節點樹之基本的檢索處理、在耦合 插入削除處理、以及求取出在耦合節點樹中所 鍵的最大値/最小値之處理等的應用處理之一 圖4,係爲展示在身爲本申請人所致之申 本特願2006-29361 9中所提案之位元列檢索的 流程圖。 首先,在步驟S401中,取得檢索開始節 碼。對應於所取得之配列號碼的配列,係爲儲 節點樹之任意的節點者。檢索開始節點之指定 所說明之各種應用檢索中被進行。 接下來,在步驟S4 02中,將所取得之配 在探索經路3 1 0中,在步驟S 4 0 3中,將對應於 之配列要素作爲應參考之節點而讀出。而:j S404中,從所讀出之節點,來取出節點種類 S405中,判定節點種類別是否爲分支節點。 在步驟S405之判定中,當所讀出之節點 點的情況時,前進至步驟S406,並從節點取 位元位置之資訊,進而,在步驟S407中,將 出之辨別位元位置的位元値從檢索鍵中取出。 驟S408中,從節點而取出代表節點號碼,在^ ’將從檢索鍵所取出之位元値與代表節點號碼 到新的配列號碼,而回到步驟S402。 人所提案之 節點樹中之 包含之索引 部分作介紹 請的上述曰 基本動作之 點之配列號 存構成耦合 ,係在於後 列號碼儲存 該配列號碼 麦,在步驟 別,在步驟 係爲分支節 出關於辨別 對應於所取 而後,在步 梦驟 S409中 作加算,得 -20- 200834356 之後,反覆進行從步驟S402起直到步驟S409爲止之 處理,直到在步驟S405之判定中被判定爲葉節點,而前 進至步驟S410爲止。在步驟S410中,從葉節點中取出索 引鍵,並結束處理。
圖5,係爲展示在身爲本申請人所致之申請的上述曰 本特願2006-2 9361 9中所提案之求取出被儲存於耦合節點 樹(包含部分樹)中之索引鍵的最小値之處理的流程圖。從 如先前所述一般之索引鍵的在樹上之配置可以推出,求取 索引鍵之最小値的處理,係相當於從檢索開始節點起而將 節點[〇]在樹上作探索直到到達葉節點爲止。 首先,從步驟S501之檢索開始節點的配列號碼之取 得起,直到步驟S 5 05之節點種類別的判定爲止,係分別 與上述之圖4的步驟S401起直到步驟S405爲止的處理相同 在步驟S 5 05之節點種類別之判定中,若是節點種類 別被判定爲分支節點,則前進至步驟S506,從節點中取 出配列之代表節點號碼,並在步驟S5 07中,在所取出之 代表節點號碼上加算上値“0”,而將該結果作爲新的配列 號碼,並回到步驟S502。之後,在步驟 S805中,反覆進 行步驟S502起到步驟S507爲止之處理,直到該節點被判 定爲葉節點爲止,並在步驟S 508中,從葉節點中來取出 索引鍵,而結束處理。 在上述之圖5所示的處理中,爲了探索節點[0],係在 代表節點號碼上一律加算上“0,,。亦即是,若藉由圖5之處 -21 - 200834356 理,則連結目標之節點,在節點對之中,係必定爲節點 [〇],並分歧向被儲存有較小之値的索引鍵之節點。藉由 此,能夠取出樹之構造爲如前所述一般之順列構成的耦合 節點樹之最小的索引鍵。 圖6,係爲展示在身.爲本申請人所致之申請的上述曰 本特願2006-293619中所提案之求取出被儲存於耦合節點 樹(包含部分樹)中之索引鍵的最大値之處理的流程圖。
求取索引鍵之最大値的處理,係相當於針對樹上之節 點中的節點[1 ],而依序進行探索,直到到達葉節點爲止 的處理。以下,針對求取任意之部分樹的最大之索引鍵的 處理,一面與上述求取最小之索引鍵的處理作比較,一面 以相異點爲中心來作說明。 在圖6所示之一連串的處理中,關於步驟S601起直到 步驟606爲止、以及步驟S608,係分別對應於圖5之步驟 S501起至步驟S 506,以及步驟S 5 08,而被實行同樣的處 理。與圖5之求取最小値的處理相異之點,係在於:在步 驟S607中,於代表節點號碼中,係加算有値“1”之點。藉 由此,在代表節點號碼所表示的節點對之中,係成爲恆常 對節點[1]作連結,藉由反覆依序進行從步驟S602起到步 驟S607爲止的處理直到到達葉節點爲止,能夠得到索引 鍵之最大値。 如同由圖4至圖6所示,在檢索與檢索鍵一致之索引鍵 的基本動作、或是實行索引鍵之最小値/最大値之檢索處 理的情況時,係將所參考之配列的配列號碼依序儲存至探 -22- 200834356 索路徑堆疊310中。
另外’在參考了上述圖5至圖6之索引鍵的最小値/最 大値之檢索處理中,雖係將耦合節點樹作爲被記憶於配列 中者而作了說明’但是,耦合節點樹係並非必須被記憶在 配列中’明顯的’亦可藉由僅對構成節點對之2個的節點 中之代表節點’或者是僅對被配置於與代表節點相鄰接之 記憶區域中的節點作連結,而到達前述葉節點,來求取出 索引鍵之最小値/最大値。 圖7A以及圖7B,係爲展示在身爲本申請人所致之申 請的上述日本特願2006-293619中所提案之求取出被儲存 於耦合節點樹中之索引鍵的下限値之處理的流程圖。於此 ’所謂下限値,係指所指定之下限鍵以上之索引鍵的最小 値。於圖7A以及圖7B中所示之求取下限値的處理,係被 應用於:當針對使用者等所指定之檢索範圍而進行檢索時 ’將實際上索引鍵所無法具有之範圍作爲對象外,並針對 實際上包含有索引鍵之範圍而進行檢索之處理。另外,在 圖7A以及圖7B中,對於所指定之下限鍵以及上限鍵的取 得處理,係被省略。在之後的各種應用檢索中,亦爲相同 首先,在步驟S701中,將檢索開始節點之配列號碼 ,設定爲根節點之配列號碼,並在步驟S702中,進行最 小値檢索處理,而求取出索引鍵之最小値。而,在步驟 S703中,將下限鍵與在步驟S702中所求取之最小値作比 較,並判定下限鍵是否較最小値爲大。當下限鍵具有最小 -23- 200834356 値以下之値時,則前進至步驟S704,將在步驟S702中所 求取出之最小値設定爲下限値,並結束處理。
在步驟S703中,當下限鍵被判定爲較在步驟S7〇2中 所求取之最小値爲更大時,則前進至步驟S705,將下限 鍵設定爲檢索鍵。而,在步驟S 7 06中,將檢索開始節點 之配列號碼,設定爲根節點之配列號碼,並在步驟S 7 0 7 中,藉由以圖4以及圖5所說明之位元列檢索方法,來檢索 出索引鍵。而後,在步驟S708中,將檢索鍵與步驟S707 之檢索結果所得到的索引鍵作比較,並判定値是否爲一致 。當判定檢索鍵與索引鍵係爲相等時,前進至步驟S709 ,將藉由檢索而得到之索引鍵設定爲上述下限値,並結束 處理。當判定檢索鍵與索引鍵係並不相等時,則前進至圖 7B之步驟S710。 在步驟S 7 1 0中,判定檢索鍵與索引鍵之大小關係。 於此,當檢索鍵爲較索引鍵更大的情況時,則該索引鍵係 爲較檢索鍵、亦即是較下限鍵爲更小,而代表其係並不被 包含在藉由使用者等所指定的檢索範圍之內。另一方面, 當檢索鍵爲較索引鍵更小的情況時,則代表該索引鍵係被 包含於所指定的檢索範圍之內。於此,若是判定檢索鍵係 較索引鍵爲更小,則前進至步驟S718,將該索引鍵設定 爲下限値,並結束處理。 在步驟S710中,若是判定檢索鍵係較索引鍵爲更大 ,則前進至步驟S71 1。從步驟S71 1起至步驟S717之處理 ,係爲以昇順而將索引鍵取出之處理,藉由從步驟S7 1 1 -24- 200834356 起直到步驟S7 17爲止的處理,被儲存在耦合節點樹中之 索引鍵係依序被取出,而若是得到具有較檢索鍵、亦即是 較下限鍵爲更大之値的索引鍵,則將該索引鍵設定爲下限 値。
圖8 A以及圖8 B,係爲展示在身爲本申請人所致之申 請的上述日本特願2006-293619中所提案之求取出被儲存 於耦合節點樹中之索引鍵的上限値之處理的流程圖。於此 ,所謂上限値,係指所指定之上限鍵以下之索引鍵的最大 値。於圖8A以及圖8B中所示之求取上限値的處理,係與 上述之求取下限値的處理同樣地,被應用於:當針對使用 者等所指定之檢索範圍而進行檢索時,將實際上索引鍵所 無法具有之範圍作爲對象外,並針對實際上包含有索引鍵 之範圍而進行檢索之處理等。 首先,關於在步驟S801中將根節點作爲檢索開始節 點而進行檢索之處理,係與求取索引鍵之下限値的處理爲 相同,又,關於步驟S 8 02之後的處理,係分別對應於上 述步驟S702之後的處理。 亦即是,在使用圖7A以及圖7B所說明了的求取下限 値之處理中,係藉由步驟S 7 02之後的處理,來檢索出·· 藉由使用者等所指定之下限鍵,和在被包含於耦合節點樹 內的索引鍵之中,具有爲下限鍵以上,且最爲接近下限鍵 之値的索引鍵。相對於此,在圖8A以及圖8B所展示的求 取上限値之處理中,係藉由步驟S802之後的處理,來檢 索出:具備有作爲檢索範圍之上限而藉由使用者等所指定 -25- 200834356 之上限鍵以下之値,且最爲接近上限鍵之値的索引鍵。
若是對圖7A以及圖7B中所示之處理作比較,則在將 所指定之鍵(下限鍵/上限鍵)與索引鍵作比較時之大小關係 (步驟S703與步驟S710、以及步驟S803與步驟S810)之點 ’或是在將所指定之鍵作爲檢索鍵而對耦合節點樹作檢索 時之分別求取出索引鍵的最小値/最大値(步驟S707以及步 驟S 807)之點,以及對索引鍵作求取時之順序分別爲昇順/ 降順(步驟S711以及步驟S811之後的處理)之點上,係爲 相反,但是,直到求取出下限値以及上限値爲止的程序, 基本上係與上述相同。 針對步驟S 802之後的處理,作具體說明。 若是在步驟S802中求取出被包含在耦合節點樹中的 索引鍵之最大値,則在步驟S803中,將在步驟S802中所 求取出之最大値與上限鍵作比較,並判定上限鍵是否爲較 最大値更大。當上限鍵爲索引鍵之最大値以上時,則前進 至步驟S804,將在步驟S802中所求取出之最大値設定爲 上限値,並結束處理。 當上限鍵爲較最大値更小的情況時,前進至步驟 S 805,將上限鍵設定爲檢索鍵。而後,在步驟S806中, 將檢索開始節點之配列號碼,設定爲根節點之配列號碼, 並在步驟S807中,進行關於檢索鍵之檢索處潘,而前進 至步驟S 8 0 8。 在步驟S 8 0 8中,判定檢索鍵與在步驟S 8 0 7中所取得 之索引鍵是否爲相等。當在步驟S 8 0 8中判定此些之値係 -26 - 200834356 爲相等時,前進至步驟S 8 0 9,將藉由步驟s 8 07之處理而 得到之索引鍵設定爲上述上限値,並結束處理。當在步驟 S 8 08中判定係並不相等時,則前進至圖8B之步驟S810。
在步驟S810中,判定檢索鍵與索引鍵之大小關係。 於此,當檢索鍵爲較索引鍵更小的情況時,則代表該索引 鍵係並不被包含於較檢索鍵、亦即是較上限鍵更小之藉由 使用者等所指定的檢索範圍之內。另一方面,當檢索鍵爲 較索引鍵更大的情況時,則代表該索引鍵係被包含於所指 定的檢索範圍之內。於此,若是判定檢索鍵係較索引鍵爲 更大,則前進至步驟S81 8,將該索引鍵設定爲上限値, 並結束處理。 在步驟S810中,若是判定檢索鍵係較索引鍵爲更大 ,則前進至步驟S 8 1 1。在步驟S 8 1 1之後的處理,係爲將 索引鍵以降順來取出的處理,反覆進行從步驟S810起至 步驟S 8 1 7爲止的處理,直到判定檢索鍵爲較索引鍵爲更 大爲止。 接下來,藉由圖9A〜圖9C、圖10,對在身爲本申請 人所致之申請的上述日本特願200 6-187827中所提案之耦 合節點樹中的節點插入處理作說明。圖9 A〜圖9 C,係爲 說明通常之插入處理者,而圖1 0,係爲說明根節點之插入 處理者。由於藉由根節點之插入處理與通常之插入處理, 耦合節點樹係被產生,因此,節點插入說明處理之說明, 係亦爲耦合節點樹之生成處理的說明。 圖9A係爲展示身爲插入處理之前段的檢索處理之處 -27- 200834356 理流程的圖,而相當於在圖4所示之檢索處理中將插入鍵 作爲檢索鍵者。步驟S901係相當於在圖4之步驟S4〇1中將 檢索開始節點作爲根節點者,步驟S902〜步驟S91〇之處 理,由於係完全對應於圖4之步驟S402〜步驟S41〇,故省 略其說明。
在圖9A之步驟S91 1中,將插入鍵與索引鍵作比較, 若是相等,則由於插入鍵係已存在於耦合節點樹中,因此 插入係成爲失敗,而結束處理。而若是不相等,則進行接 下來之處理,亦即是前進至圖9B之步驟S912以下的處理 圖9B ’係爲用以說明爲了對欲插入之節點對所需要的 配列要素作準備之處理的處理流程圖。 在步驟S 9 1 2中,從配列中求取空的節點對,並取得 於該節點對中應成爲代表節點的配列要素之配列號碼。 前進至步驟S913,將插入鍵與在步驟S910中所得到 之索引鍵的大小作比較,當插入鍵爲較大的情況時,得到 値1之布林値,當較小時,則得到値〇的布林値。 前進至步驟S914,在以步驟S912所得到的代表節點 之配列號碼上,加算上以步驟S9 1 3所得到之布林値,而 得到配列號碼。 前進至步驟S915,而得到在以步驟S912所得到的代 表節點之配列號碼上加算上以步驟S9 1 3所得到之布林値 的邏輯否定値後的配列號碼。 在步驟S914所得之配列號碼,係爲儲存有將插入鍵 -28· 200834356 作爲索引鍵而持有之葉節點的配列要素之配列號碼,在步 驟S915所得到之配列號碼,則係爲與該葉節點成對之分 支節點所被儲存之配列要素者。 亦即是,藉由被儲存於在前段之檢索處理中所得到之 葉節點中的索引鍵與插入鍵之大小,來決定在所插入之節 點對中的何者之節點處,儲存保持有插入鍵之葉節點。
例如,當在圖2B之耦合節點樹中插入“011011”的情 況時,檢索結果之索引鍵,係成爲被儲存於節點2 1 1 d中 之“01 1010”。藉由插入鍵“01 1011”與被儲存於節點21 Id中 之索引鍵“0110 10”間的大小比較,求取出布林値,在現在 之例中,由於插入鍵係爲較大,因此係得到布林値1,並 在將所插入之節點對的代表節點號碼上加上1後之配列要 素中,儲存保持有插入鍵之葉節點。另一方面,索引鍵 “0 1 1 0 1 0”,係被儲存於將以大小比較所得到之布林値作邏 輯反轉後所得之値加算至代表節點號碼上後之配列號碼的 配列要素中。 此時,由於索引鍵“011010”與插入鍵“011011”間,係 爲在第5位元成爲相異,因此,節點2 1 1 d,係成爲:將辨 別位元位置設爲5,並將代表節點號碼作爲所插入之節點 對的代表節點之配列號碼的分支節點。 又,當欲在圖2B之耦合節點樹中插入“〇1 1001”的情 況時,檢索結果之索引鍵,係成爲被儲存於節點211d中 之“0 1 1 0 1 0”。於此情況中,由於插入鍵係爲較小,因此得 到布林値0,並在將所插入之節點對的代表節點號碼上加 -29 - 200834356 上了 〇之配列要素中,儲存保持有插入鍵之葉節點。而後 ,由於索引鍵“01 1010”與插入鍵“01 1001”間,係爲在第4 位元成爲相異,因此,節點2 1 1 d,係成爲··將辨別位元位 置設爲4,並將代表節點號碼作爲所插入之節點對的代表 節點之配列號碼的分支節點。接下來,前進至圖9C之步 驟S916以下的處理。
圖9C係爲展示:在將節點儲存於在圖9B所準備之配 列中的同時,求取其插入位置,並改變既存之節點的內容 ,而完成插入處理的處理流程之圖。 從步驟S916〜步驟S923爲止的處理,係爲求取出所 插入之節點對的在耦合節點樹上之位置的處理,而步驟 S 924以下之處理,係爲在各節點中設定資料並完成插入處 理的處理。 在步驟S916中,將插入鍵與在步驟S910中所得到之 索引鍵的位元列,以例如排他之邏輯和來進行比較,並得 到差分位元列。 前進至步驟S917,從在步驟S916中所得到的差分位 元列,而得到從上位之第〇位元起所看到之最初的不一致 位元之位元位置。此處理,例如在具備有優先編碼器 (priority encoder)的CPU中,係於該處輸入差分位元列, 而可得到不一致之位元位置。又,亦可軟體式的進行與優 先編碼器同等之處理,而得到最初之不一致位元的位元位 置。 接下來,前進至步驟S918,並判定探索經路堆疊之 -30- 200834356 堆疊指標是否指向根節點之配列號碼。若是係指向該處, 則移行至步驟S924,若是未指向該處,則前進至步驟 S919 〇 在步驟S 9 1 9中,係將探索經路之堆疊指標倒退一個 ,並取出被堆疊於該處之配列號碼。 前進至步驟S920,將在步驟S919中所取出的配列號 碼之配列要素,從配列中作爲節點而讀取出。
前進至步驟S921,從在步驟S920所讀取出之節點中 ,取出辨別位元位置。 接下來,前進至步驟S922,判定在步驟S921中所取 出之辨別位元位置是否爲較在步驟S917中所得到之位元 位置更上位之位置關係。於此,所謂的上位之位置關係, 係指位元列之靠左側的位置,亦即是位元位置之値爲小的 位置。 若是步驟 S922之判定結果係爲否定,則回到步驟 S918,並反覆進行處理,直到在步驟S918之判定成爲肯 定,或是在步驟S922之判定成爲肯定爲止。若是在步驟 S922之判定成爲肯定,則在步驟S923中,使探索路徑堆 疊之指標前進1個,並移行至步驟S9 24以下之處理。 在上述步驟S916〜步驟S923中所說明之處理,係爲 了決定插入之節點對的插入位置’而對所插入之索引鍵與 藉由檢索所取得之索引鍵之間,進行位元列比較,並對在 位元列比較中成爲相異之位元値的前端之(最上位之)位元 位置與被儲存於堆疊中之分支節點的辨別位元位置之相對 -31 - 200834356 的位置關係作調查,而將辨別位元位置成爲上位之分支節 點的下一個分支節點之連結目標,作爲所插入之節點對的 插入位置。
例如,當在圖2B之耦合節點樹中插入“1 1 1 000”的情 況時,檢索結果之索引鍵,係成爲被儲存於節點2 1 Oh中 之“10101 1”。藉由對插入鍵“ 1 1 1 000”與被儲存於節點21 Oh 中之索引鍵“ 1 0 1 0 1 1”所進行的位元列比較,而得到成爲相 異位元値之最上位的位元位置1。若是對所得到之位元位 置1與被儲存在堆積於經路探索堆疊中之配列號碼的配列 要素中之分支節點的辨別位元位置間之位置關係,以使辨 別位元位置成爲上位爲止的方式,來以反方向而依序對探 索路徑堆疊作探索,則會到達根節點2 1 0a。於此,使探索 路徑堆疊之指標前進1個,而得到節點2 1 1 b之配列號碼。 插入鍵“1 1 1 000”係被插入至節點2 lib之連結目標處。 又,若是就算是以反方向來對探索經路堆疊作探索並 到達根節點,該根節點之辨別位元位置,亦係並非爲較在 先前所求取之位元列比較中成爲相異位元値之最上位的位 元位置更上位之位元位置,則係表示:在該耦合節點樹之 索引鍵的上位位元中,較根節點之辨別位元位置爲更上位 的上位之位元的値係全部爲相等。而,在所插入之索引鍵 中,第一次出現有在較根節點之辨別位元位置更上位的位 元之値中具有相異之位元値者。故而,所插入之節點對, 係成爲根節點之直接的連結目標,根節點之辨別位元位置 ,係變更爲身爲與既存之索引鍵爲相異値之插入鍵的最上 -32- 200834356 位位元之位置。 接下來’針對步驟S924以下之在各節點中設定資料 並完成插入處理的處理作說明。 在步驟S924中,係從探索經路堆疊中將指標所指向 之配列號碼取出。
在步驟S925中,在以步驟S9 14所得到之配列號碼所 指向的配列要素之節點種類別中寫入i (葉節點),並在索 引鍵中寫入插入鍵。 前進至步驟S926,將在步驟S924中所取出的配列號 碼之配列要素,從配列中讀取出。 接下來’在步驟S927中,在以步驟S915所得到之配 列號碼的配列要素中,將藉由步驟S 9 2 6所讀出的內容寫 入。 最後’在步驟S92 8中,在以步驟 S924所得到之配列 號碼所指向的配列要素之節點種類別中寫入〇 (分支節點) ’並在辨別位元位置中寫入以步驟S9〗7所得到之位元位 置’在代表節點號碼中寫入以步驟S91 2所得到之配列號 碼,而結束處理。 在上述之於圖2 B的耦合節點樹中插入“ 1 1 1 〇 〇 〇,,的例 中’係在所取得之空節點對的節點[0]中,寫入節點21 lb 之內容(步驟S927),並將節點[1],作爲保持插入鍵 “1 1 1000”之葉節點(步驟S925)。而後,在節點211b之辨 別位元位置中’儲存藉由位元列比較而成爲相異之位元値 的最上位之位元位置1,而在代表節點號碼中,係儲存有 -33- 200834356 所取得之節點對的代表節點所被儲存之配列要素的配列號 碼(步驟S928)。 圖10,係爲對在身爲本申請人所致之申請的上述曰本 特願2006-187827中所提案之將包含有根節點之插入處理 的索引鍵作追加時之節點插入處理全體作說明的處理流程 圖。
在步驟S 1 0 1中,判定被要求作取得之耦合節點樹的 根節點之配列號碼是否爲已完成登錄。若係爲已完成登錄 ,則係進行使用圖9A〜圖9C而說明了的通常之插入處理 在步驟S 1 0 1中之判定,若是係爲未完成登錄,則係 成爲開始全新之耦合節點樹的登錄、產生。 首先,在步驟S1 02中,從配列中求取空的節點對, 並取得於該節點對中應成爲代表節點的配列要素之配列號 碼。接下來,在步驟S103中,求取出在以步驟S102所得 到之配列號碼中加上〇的配列號碼(實際上,係相等於在步 驟S102中所取得之配列號碼)。進而,在步驟S104中,在 以步驟S 1 03所得到之配列號碼的配列要素中,於插入之 根節點的節點種類別中寫入1 (葉節點),並於索引鍵中寫 入插入鍵,而在步驟S105中,將以步驟S102所取得之根 節點的配列號碼作登錄,並結束處理。 如先前亦所述一般,明顯的,當存在有索引鍵之集合 時,藉由從該處依序取出索引鍵,並反覆進行圖1 0以及圖 9A〜圖9C之處理,而能夠建構對應於索引鍵之集合的本 -34- 200834356 發明之耦合節點樹。 接下來’參考圖11A、圖11B,對於在身爲本申請人 所致之申請的上述日本特願2006-1 87 827中所提案之從耦 合節點樹中之索引鍵的集合,來將特定之索引鍵作削除的 處理流程作說明。
圖1 1 A,係爲展示身爲削除處理之前段的檢索處理之 處理流程的圖,而相當於在圖4所示之檢索處理中將削除 鍵作爲檢索鍵者。步驟S1 101係相當於在圖4之步驟S4 01 中將檢索開始節點作爲根節點者,步驟 S 1 1 02〜步驟 SI 1 10之處理,由於係完全對應於圖4之步驟S402〜步驟 S410,故省略其說明。 在圖11A之步驟S1111中,將削除鍵與索引鍵作比較 ,若是不相等,則由於欲削除之索引鍵鍵係不存在於耦合 節點樹中,因此削除係成爲失敗,而結束處理。而若是相 等,則進行接下來的處理,亦即是前進至圖1 1 B之步驟 SI 1 12以下的處理。 圖1 1 B,係爲說明削除處理之後段的處理流程之圖。 首先,在步驟S 1 1 1 2中,判定在探索經路堆疊中是否 被儲存有2個以上的配列號碼。若是未被儲存有2個以上的 配列號碼,換句話說,僅存在有1個,則該配列號碼係爲 被儲存有根節點之配列要素。於該情況,係移行至步驟 S 1 1 1 8,並將屬於以步驟S 1 1 0 1所得到之根節點的配列號 碼之節點對削除。接下來,前進至步驟S 1 1 1 9,並將被登 錄之根節點的配列號碼削除,而結束處理。 -35- 200834356 在步驟S1112中,若是被判定爲在探索經路堆疊中係 儲存有2個以上的配列號碼,則前進至步驟S 1 1 1 3,並得 到在以步驟S 1 1 08所得到之代表節點號碼中加算有將以步 驟S 1 1 07所得到之位元値反轉後的値後之配列號碼。此處 理,係爲求取與身爲削除對象之索引鍵所被儲存之葉節點 成對之節點的所被配置之配列號碼者。
接下來,在步驟S 1 1 1 4中,讀取出以步驟S 1 1 1 3所得 到之配列號碼的配列要素之內容,並在步驟S1115中,將 探索路徑堆疊之堆疊指標倒退1個,而取出配列號碼。 接下來,前進至步驟S 1 1 1 6,將在以步驟S 1 1 1 4所讀 出之配列要素的內容,抹寫至以步驟S 1 11 5所得到的配列 號碼之配列要素中。此處理,係爲將身爲對削除對象之索 引鍵所被儲存之葉節點之連結源頭的分支節點,置換爲與 上述葉節點成對之節點者。 最後,在步驟s 1 1 1 7中,將相關於以步驟s 1 1 0 8所得 到之代表節點號碼的節點對作削除,並結束處理。 以上’雖係通於成爲關於f禹合卽點樹之分割/結合的 本發明之前提的技術作了說明,但是,若是有必要,則請 參考上述之專利申請的說明書以及圖面的記載。 接下來,針對本發明之耦合節點樹之分割/結合方法 作說明。 於此,所謂的耦合節點樹之分割,係指當指定有由某 位元列所成之分割鍵時,將被包含於耦合節點樹中之索引 鍵,藉由與該分割鍵間之大小關係而分成2個群組,並產 -36- 200834356 生由屬於分別之群組的索引鍵所成之2個的耦合節點樹一 事。 關於以大小關係所致之分割,在以下之說明中,係設 爲將其分割成較分割鍵爲更大之群組與爲分割鍵以下之群 組’但是,由以下之說明中,應可容易的理解,在將其分 割成分割鍵以上之群組與較分割鍵爲更小之群組的情況時 ,亦同樣的可進行分割/結合。
也就是說,分割鍵,係爲用以決定將耦合節點樹在何 處作分割的鍵。 又,所謂耦合節點樹之結合,係指從對應於2個的索 引鍵之集合的2個耦合節點樹,來產生對應於2個的索引鍵 之集合的和集合之耦合節點樹一事。在本發明中,係以2 個的索引鍵之集合的積集合係爲空的一事作爲前提。 以下,雖係針對本發明之3個的實施例作說明,但是 ’在此說明中,亦有將耦合節點樹單純稱爲樹的情況。在 以下所說明之實施例1、2以及3中,在分割處理對象之樹 中,雖然並不一定需要包含有與所指定之分割鍵相等的索 引鍵,但是,當將對應於所指定之分割鍵的索引鍵作爲分 割鍵時,係可將所指定之分割鍵作爲上限鍵或是下限鍵, 並藉由參考圖7A、圖7B、圖8B所說明了的檢索方法,而 求取出上限値或是下限値,並將其設定爲對應於所指定的 分割鍵之新的分割鍵。 [實施例1] -37· 200834356
本實施例1,係取出身爲分割對象之處理源頭的樹(以 下,亦有單純稱爲處理源頭的情況)之索引鍵的最小値, 並將所取出之索引鍵的最小値,插入至藉由處理源頭之分 割所產生的處理目標之樹(以下,亦有單純稱爲處理目標 的情況)中,而從處理源頭之樹來將索引鍵之最小値削除 ,並藉由反覆進行上述之處理,直到最小値係成爲分割鍵 以下,而從身爲分割對象之處理源頭的樹中來分割出處理 目標之樹。 圖1 2,係爲說明本發明之實施例1中的耦合節點樹之 分割處理流程的圖。 將在最初之步驟S 1 20 1中所指定的分割鍵,設定爲處 理源頭之分割鍵。分割鍵之指定,係可能爲操作者所致之 外部輸入的情況,亦可能爲某一電腦程式之處理結果所致 的情況,亦可能爲由從遠處而來之指令所致的情況等。所 指定之分割鍵,係被設定於將處理源頭之分割鍵作保持之 記憶體上的區域中。 接下來,在步驟S 1 202中,將處理源頭之根節點,設 定爲處理源頭之檢索開始節點,並前進至步驟S 1 203。 在步驟S 1 203中,係判定處理源頭之樹爲已完成登錄 。由於當此判定結果爲尙未完成登錄的情況時,係表示處 理源頭之樹爲全部完成削除,因此,係爲分割鍵爲處理源 頭之樹的索引鍵之最大値以上的例外情況,當此情況時, 處理係結束。 若是處理源頭之樹係爲已完成登錄,則移動至步驟 -38- 200834356 S 1204,藉由在步驟S 1 202中作爲檢索開始節點而設定的 根節點,來實行於圖5中所示之處理,而得到索引鍵之最 小値。
接下來,前進至步驟S 1 205,判定在步驟S 1204中所 得到之最小値是否較分割鍵爲更大。若是最小値係較分割 鍵爲更大,則表示樹之分割係爲完成,因此,處理係結束 ,而若是並未較分割鍵爲大,則實行在以下所說明之步驟 S 1206〜步驟S 1 209的處理目標之樹的產生與從處理源頭 之樹的節點之削除處理,而回到步驟S 1 203。 在步驟S 1 206中,係將在步驟S 1 204中所得到之最小 値,設定爲處理目標之插入鍵。 接下來,在步驟S 1 207中,藉由圖9A〜圖9C、圖10中 所示之樹的產生、插入處理,而實行插入鍵所致的處理目 標之樹的產生。 接下來,在步驟S 1 208中,將在步驟S 1 207中之插入 鍵設定爲處理源頭之削除鍵,並在步驟S 1209中,藉由於 圖1 1 A、圖1 1 B中所示之削除處理,來從處理源頭之樹中 將包含有削除鍵之葉節點削除。 在上述分割處理之說明中,雖係設爲從處理源頭之索 引鍵的最小値起而依序作削除,但是,只要是同業者,則 應可輕易明瞭,亦可同樣地從索引鍵之最大値起而依序進 行削除。於該情況,步驟S 1204係成爲求取索引鍵之最大 値的處理,步驟S 1 205係成爲最大値與分割鍵間之大小關 係的判定處理,而在步驟S 1 206中,係成爲將最大値設定 -39- 200834356 爲處理目標之插入鍵。 以上,雖係針對分割處理作了說明,但是,結合處理 亦可藉由於圖1 2中所示之處理流程來實行。
結合處理,若是將欲結合之2個的樹之中的其中一者 作爲處理源頭之樹,並將分割鍵設爲處理源頭之樹的索引 鍵之最大値以上,則係相當於先前所述之例外的處理,處 理源頭之樹係被削除,而被結合至處理目標之樹中。另外 ,當處理源頭之樹的索引鍵之最大値係爲未知的情況時, 則係成爲事先藉由於圖6中所示之最大値檢索處理,來求 取出分割鍵。 而後,由於係將處理源頭之分割鍵設爲處理源頭之樹 的索引鍵之最大値以上,因此,在步驟S 1 205之大小比較 中,分割鍵係恆常較最小値爲大而分歧至步驟S 1206,故 而,係可省略步驟S 1 205。若是如此,則設定分割鍵一事 亦成爲無意義,因此,最終,步驟S1 201係亦成爲不必要 ,而可僅單純地藉由最小値檢索與插入處理與削除處理的 反覆進行,來進行結合處理。 又,如同在分割處理中所述一般,明顯的,亦可藉由 最大値檢索與插入處理與削除處理之反覆進行,而進行結 合處理。 本實施例1,其處理之邏輯雖係爲簡單,但是’由於 係反覆進行將處理源頭之根節點作爲檢索開始節點的最小 値檢索,並以索引鍵單位來進行插入削除處理,因此,實 行時之處理步驟數係變大。 -40- 200834356 [實施例2] 本實施例2,在以索引鍵單位來進行插入削除之點上 ,雖係與實施例1相同,但是,係爲藉由在應插入削除之 索引鍵的檢索中活用探索路徑堆疊,而將插入處理以及削 除處理的實行時之處理步驟數減少者。
圖1 3,係爲說明本發明之實施例2中的耦合節點樹之 分割處理流程的圖。 從步驟S1301起至步驟S 1 306爲止之處理,由於係爲 和圖12所示之實施例1的步驟S1201起至步驟S 1 206爲止的 處理完全相同,故省略其說明。 在步驟S 1 3 07中,藉由插入鍵,而在處理目標中插入 節點。此處理,係和在圖1 2中所示之步驟S 1 207的插入處 理相異,而爲在本實施例中之特有者,於後,係參考圖i 4 、圖1 5 A、圖1 5B而作詳細說明。 接下來,在步驟S1308中,將包含有在步驟S 1 304中 所得到之最小値的節點,作爲處理源頭之削除節點而設定 ,在步驟S1309中,從處理源頭而將削除節點削除,而得 到將與削除節點成對之節點的內容複製的處理源頭之母節 接下來,在步驟S1310中,將在步驟Si 309中所得到 之處理源頭之母節點,設定爲處理源頭之檢索開始節點, 並回到步驟S 1 3 0 3。 如同後述所說明一般,處理源頭之削除節點,係爲削 •41 200834356 除節點之近旁的上位之分支節點。削除節點,係爲包含有 處理源頭之索引鍵的最小値者,從先前所述之索引鍵的順 序性可知,下一個所檢索之最小値,係在處理源頭之母節 點的下位。 故而,藉由並不將於第2次之後的步驟S13〇4中之最 小値檢索的檢索開始節點作爲根節點,而作爲處理源頭之 母節點,可以減低處理步驟數。
關於步驟S1308〜步驟S1309、以及處理源頭之母節 點,於後,參考圖16並作詳細說明。 圖1 4,係爲說明對應於圖1 3所示的步驟S 1 3 0 6與步驟 S 1 3 07之節點的插入處理流程之圖。 在最初之步驟S 1 40 1中的將插入鍵作爲處理目標之插 入鍵而設定的步驟,係爲對應於圖1 3所示之步驟S 1 3 0 6的 處理,而將在圖13所示之步驟S 1 304中所得到的最小値, 設定於處理目標之插入鍵設定區域中。 接下來,在步驟S1402中,判定處理目標是否爲已完 成登錄。 若是並非爲已完成登錄,則係移動至步驟S 1 403,在 步驟S 1 403中,將包含有插入鍵之節點對設定於處理目標 之根節點中,並作爲處理目標之根節點而登錄。接下來, 前進至步驟S 1404,並將處理目標之根節點作爲插入完成 之節點而設定,而結束處理。 在上述步驟S1 4 0 2中之判定結果若是爲已完成登錄, 則係移動至步驟S1405。在步驟S1405中,係判定插入完 -42- 200834356 成之節點是否爲已完成設定。此判定處理,係爲於後所說 明之樹的結合處理中成爲必要者。在樹之分割處理中,於 最初之插入處理中,由於在步驟S1404中係將根節點作爲 插入完成之節點而設定,因此,在步驟S1 406中之判定, 係恆常成爲「是」。故而,若是僅爲了進行分割處理,則 步驟S 1405與步驟S 1 407係並非爲必要。
右疋在步驟S 1 4 0 5中之判疋結果係爲「是」’則目丨j進 至步驟S 1 406,並將作爲插入完成之節點而設定之節點設 定爲處理目標之檢索開始節點,而前進至步驟S 1 408。 若是在步驟S 1405中之判定結果係爲「否」,則前進 至步驟S 1 407,並將根節點設定爲處理目標之檢索開始節 點,而前進至步驟S 1 408。 在步驟S1408中,係藉由圖6所示之最大値檢索處理 ,而從在步驟S 1406或者是步驟S 1407中所設定之檢索開 始節點來求取處理目標之索引鍵的最大値。 接下來,在步驟S 1409中,藉由在步驟S1401中所設 定之插入鍵與在步驟S 1 407中所得到之最大値,來求取出 所插入之節點對的處理目標之母節點,並在該母節點處將 包含有前述插入鍵之節點對插入。 接下來,前進至步驟S1410,將在步驟S 140 9中被插 入有包含插入鍵之節點對的處理目標之母節點,作爲插入 完成之節點而設定,並結束處理。 接下來,針對上述之步驟S1403與步驟S 1409作詳細 說明。 -43- 200834356 圖15A,係爲說明在圖14中所示之步驟S 1 403的根節 點設定處理之流程圖。 首先,在步驟S 1 5 0 1中,從配列中而取得節點對爲空 之代表節點號碼。 接下來,在步驟S 1 502中,將在步驟S1501中所取出 之代表節點號碼上加算上値所得到的配列號碼,作爲 插入節點之配列號碼而設定。
前進至步驟S 1 5 03,爲了形成葉節點,而將節點種類 別設定爲葉,將索引鍵設定爲插入鍵,並儲存於以步驟 S 1 502所設定之配列號碼的配列要素中。 接下來,在步驟S 1 5 04中,將插入節點之配列號碼作 爲根節點之配列號碼而登錄,並結束處理。 另外,上述步驟S1501〜步驟S 1 504之處理,係爲對 應於在參考圖1 〇所說明之耦合節點樹的產生處理中,當根 節點之配列號碼係並非爲已完成登錄的情況時之步驟 S102〜步驟S105者。 圖15B,係爲說明圖14所示之步驟S1409的求取出所 插入之節點對的處理目標之母節點,並在該母節點中插入 包含有前述插入鍵之節點對的處理之流程圖。於圖1 5B中 所示之流程,係爲在身爲本申請人所致之先前的申請之曰 本特願2006- 1 8 7827中所提案之插入處理的應用,在步驟 S 1 5 0 5中之將插入鍵與最大値作爲位元列而比較,並求取 出從上位第〇位元起所發現之最初的不一致位元之位置, 而將其設定於儲存差分位元位置之區域中的處理,係對應 -44- 200834356 於圖9C所示之步驟S916與步驟S917之處理。 接著步驟S 1 505之後,而前進至步驟S 1 506。另外, 步驟S1506〜步驟S1512之處理,係相當於圖9C所示之步 驟S918〜步驟 S923,步驟S1513〜步驟 S1518之處理, 係相當於圖9C所示之步驟S924〜步驟S928。 在步驟S 1 506中,係將處理目標之探索經路的堆疊指 標倒退一個,並取出配列號碼。
接下來,在步驟Sl5〇7中,從配列中而將配列號碼所 指向的配列要素之內容作爲節點而取出。 接下來,在步驟S1508中,從在步驟S1507所讀取出 之節點中,取出辨別位元位置。 接下來,在步驟S 1 509中,對在步驟S 1 5 05中所設定 之差分位元位置與在步驟S1508中所取出之差分位元位置 作比較,並判定辨別位元位置是否較差分位元位置更上位 之位置關係。 其判定之結果’若是辨別位元位置係爲較差分位元位 置更爲上位之位置關係,則前進至步驟S 1 5 1 2,將處理目 標之探索路徑堆疊的堆疊指標前進1個,並取出配列號碼 ,而將其設定於母節點之配列號碼區域中,並移動至步驟 S1513 ° 在步驟S 1 5 0 9中之判定的結果,若是辨別位元位置並 非爲較差分位元位置爲更上位之位置關係,則前進至步驟 S 1 5 1 0 〇 在步驟S 1 5 1 0中,判定處理目標之探索經路堆疊的堆 •45- 200834356 疊指標是否指向根節點之配列號碼。 判定之結果,當處理目標之探索經路堆疊的堆疊指標 並非指向根節點之配列號碼的情況時,則回到步驟S 1 5 0 6
判定之結果,當處理目標之探索經路堆疊的堆疊指標 係指向根節點之配列號碼的情況時,則在步驟S 1 5 1 1中, 從處理目標之探索路徑堆疊中取出堆疊指標所指向之配列 號碼,並設定於儲存處理目標之母節點的配列號碼之區域 中,而移動至步驟S 1 5 1 3。 在步驟S 1 5 1 3中,從配列中而取得節點對爲空之代表 節點號碼。 接下來,在步驟S 1 5 1 4中,將在代表節點號碼上加算 上1所得到的配列號碼,作爲儲存插入節點之配列號碼的 區域而設定。 接下來,在步驟s 1 5 1 5中,爲了形成葉節點,而將節 點種類別設定爲葉,將索引鍵設定爲插入鍵,並儲存於以 步驟S 1 5 1 4所設定之配列號碼的配列要素中。 接下來,在步驟S 1 5 1 6中,將在代表節點號碼上加算 上〇所得到的配列號碼,作爲儲存與插入節點成對之對節 點的配列號碼之區域而設定。 接下來,在步驟S1517中,將在步驟ι51ι或者是步驟 S 1 5 1 2中所設定之處理目標的母節點之配列號碼所指向之 配列要素的內容讀出,並儲存在以步驟S 1 5 1 6所設定之對 節點的配列號碼所指向之配列要素中。 -46- 200834356 接下來,在步驟s 1 5 1 8中,爲了形成分支節點,而在 節點種類別中設定分支,在辨別位元位置中設定以步驟 S 1 5 05所設定之差分位元位置,在代表節點號碼中設定以 步驟S 1 5 1 6所設定之對節點的配列號碼,並儲存在以步驟 S 1 5 1 1或者是步驟S 1 5 1 2所設定之處理目標的配列號碼所 指向之配列要素中,而結束處理。
圖1 6,係爲展示針對圖1 3所示的處理流程中之削除處 理而說明之處理流程例的圖。 身爲最初之步驟的步驟S 1 60 1,係爲相當於圖1 3所示 之步驟S 1 3 08者。被包含於削除節點中之削除鍵,由於係 爲藉由在圖1 3所示之步驟S 1 3 04中的最小値檢索所求取出 者,因此,由於在處理源頭之探索路徑堆疊中係被堆疊有 儲存削除鍵之配列要素的配列號碼,故讀取出該配列號碼 ,並設定於儲存削除節點之區域中。 接下來,在步驟S 1 602中,判定在處理源頭之探索經 路堆疊中,是否被儲存有2個以上的配列號碼。從此步驟 S 1 602之後直到步驟S 1 60 8的處理,係爲相當於圖11B所 示之在身爲本申請人所致的先前之申請的日本特願2006-1 87827中所提案之削除處理的後段之處理者。 若是在處理源頭之探索路徑堆疊中並未被儲存有2個 以上的配列號碼,則移動至步驟S 1 607,將在步驟S1 601 中所設定之削除節點的配列號碼所指向之節點對削除,並 前進至步驟S 1 608,將根節點之配列號碼削除(抹除其登 錄),而結束處理。 -47- 200834356 若是在處理源頭之探索路徑堆疊中係儲存有2個以上 的配列號碼,則前進至步驟S 1 603,求取出與在步驟 S 1 60 1中所設定之削除節點成對之節點的配列號碼,並設 定於儲存對節點之配列號碼的區域中。
接下來,在步驟S 1 604中,將處理源頭之探索路徑堆 疊的堆疊指標倒退1個,並取出配列號碼,而設定於身爲 削除節點之近旁上位的分支節點之處理源頭的母節點之配 列號碼儲存區域中。 接下來,在步驟S 1 605中,將在步驟1 603中所設定之 對節點的配列號碼所指向之配列要素的內容讀出,並儲存 在以步驟S 1 604所設定之處理源頭的母節點之配列號碼所 指向的配列要素中。 接下來,在步驟S 1 606中,將削除節點之配列號碼所 指向之節點對削除,並結束處理。 以上,雖係針對實施例2之樹分離處理而作了說明, 但是,在實施例2中,亦和實施例1同樣的,可以從索引鍵 之最大値起依序進行削除。 又’與實施例1的情況相同,可將分割處理之處理流 程使用在樹之結合處理中。只要將欲結合之2個的樹中之 任一者作爲處理源頭之樹,並將分割鍵設定爲處理源頭之 樹的索引鍵之最大値以上或者是最小値以下,而進行處理 源頭之樹的削除處理,並進行將所削除之節點插入至處理 目標之樹中的處理即可。 -48- 200834356 [實施例3] 上述之實施例1與實施例2的分割結合方法,雖係爲以 索引鍵單位來進行插入削除者,但是,作爲接下來之實施 例3,係對注目於耦合節點樹之順序性,而將耦合節點樹 之更大的滿足特定條件之部分樹作爲單位,來進行插入削 除的分割結合方法作說明。
圖17,係爲說明在實施例3中之耦合節點樹的分割處 理流程之圖。又,圖30A〜圖30C,係爲將上述處理藉由 實例來作說明之圖,並例示有與在圖2B中所例示之耦合 節點樹相類似之樹。圖3 0 A係爲展示分割前之樹構造例, 圖3 0B係爲展示最初之分割後的樹構造例,圖30C係爲展 示在下一次分割後之樹的構造例。 首先,如圖17所示一般,藉由步驟S001,而取得分 割鍵,並設定於儲存分割鍵之區域中。在圖3 0 A之例示中 ,分割鍵係相等於節點21 lg之索引鍵25 lg的“1 0001 1”。 另外,如同先前所述一般,所取得之分割鍵,雖並不需要 被包含在處理源頭中,但是,如同後面所說明一般,在本 實施例中,係有必要藉由所取得之分割鍵而求取出上限値 或是下限値,並將被包含在處理源頭中之索引鍵作爲新的 分割鍵。故而,在以下之說明中,分割鍵係作爲被包含在 處理源頭中者而作說明。 接下來,在步驟S002中,藉由分割鍵而求取出處理 源頭之分割節點。分割節點,係爲將分割鍵作爲最大値而 包含之部分樹之中的最大者(以下,稱爲分割節點樹。)之 -49- 200834356 根節點。在圖3 0 A之例示中,節點2 1 Of係爲分割節點’以 點線所包圍之部分樹,係爲分割節點樹29 1 °求取分割節 點之處理的詳細,係於後參考圖1 8與圖1 9而作說明。
接下來,前進至步驟S0 03中,判定處理目標是否爲 已完成登錄。若是並非爲已完成登錄,則前進至步驟 S004,將以步驟S002所求取之分割節點,設定爲處理目 標之根節點,並作爲處理目標之根節點而登錄,進而’移 動至步驟S007,並實行分割節點樹之削除處理。另外, 步驟S004之處理的詳細說明,係於後參考圖20而進行。 在圖3 0 A之例示中,分割處理係爲剛開始,如圖3 0 A 之(b)所示一般,由於處理目標係並不存在且並未被登錄 ,因此,前進至步驟S004,將分割節點21 Of之內容作爲 處理目標,而儲存在新取得之節點對20 li的代表節點21 0i 中’並設定爲處理目標之根節點,而作爲處理目標之根節 點並登錄。作爲其結果,如圖30B之(b)所示一般,由被 插入之分割節點樹291所成的處理目標之樹係被產生。 另一方面,在圖30B之(a)中,係展示有從處理源頭而 將以節點21 lg作爲分割節點的分割節點樹291削除後之樹 構造’將分割節點2 1 0b作爲根節點之下一個分割節點樹 2 92 ’係以點線而包圍並展示之。 在步驟S003中之判定結果若是爲已完成登錄,則係 移動至步驟S005。在步驟S005中,係求取出身爲在後述 之步驟S0 1 〇中所設定的下一個分割節點樹之最大値的分 割鍵’與處理目標之最小値,其兩者間的差分位元位置。 -50- 200834356 求取差分位元位置之處理的詳細,係於後參考圖2 1而作說 明。 在圖30B之例示中,下一個分割節點樹292之最大値 ,係爲索引鍵251 c“01 1010”,處理目標之最小値係爲索引 鍵25 0g“ 1 000 1 0”,因此,差分位元位置係爲“〇”。
接下來,前進至步驟S006中,將處理目標之根節點 ,作爲插入位置,並在處理目標中,插入分割節點樹,並 前進至步驟S007。 在步驟S007中,係從處理源頭而將分割節點樹削除 。而後,前進至步驟S008,求取出下一個分割節點。 在圖30C之(1>)中,係展示有:將根節點210丨作爲插 入位置,並經由新取得之節點對20 lj,而將下一個分割節 點樹292插入至處理目標後之樹構造。又,在圖30C之(a) 中,係展示有:從在圖30B之(a)中所展示的樹構造中,將 下一個分割節點樹292削除後之構造。 在步驟006中之分割節點的插入處理、在步驟S007中 之削除處理、以及在步驟S008中之求取下一個分割節點 之處理,其詳細內容,係分別於後參考圖22、圖23、圖24 來作說明。 接著步驟S008之後,在步驟 S009中,判定在步驟 S008中是否求取出了分割節點。若是未求取出分割節點, 則分割處理係成爲結束。 若是求取出有分割節點,則在步驟S 0 1 〇中,求取出 身爲將該分割節點作爲根節點之部分樹的分割節點樹之最 -51 - 200834356 大値,並作爲下一個分割節點,而後,回到步驟S〇05中 ,並反覆進行下一個的分割節點之插入、削除處理,以及 求取出再更下一個之分割節點的處理。 在步驟S 0 1 0中之求取分割節點之最大値,並作爲下 一個分割節點之處理的詳細內容,係於後參考圖25而作說 明。
在本實施例中,由於係如上述所示一般,以分割節點 樹單位來進行削除插入處理,因此,步驟數係被削減。 接下來,參考圖18與圖19,對於圖17中所示之步驟 S0 02中的求取出分割節點之處理作詳細說明。 圖1 8,係爲說明在求取最初之分割節點的處理流程之 前段的圖。 如圖18所示一般,在步驟S1801中,將分割鍵作爲檢 索鍵而設定,並在步驟S 1 802中,將儲存有處理源頭之根 節點的配列要素之配列號碼,作爲檢索開始節點之配列號 碼而設定。 接下來,前進至步驟S 1 803,實行於圖4中所示之檢 索處理,並作爲檢索結果,而得到與分割鍵相等之索引鍵 ,而結束前段之處理,並前進至於圖19中所示之後段的處 理。 後段之處理,雖係參考圖1 9而作說明,但是,於此之 前,再度參考圖3 0 A,而針對在本實施例中將分割鍵作爲 被包含於處理源頭中之索引鍵的必要性作說明。 現在,假設將在圖3 0 A中所展示之處理源頭,以分割 -52- 200834356 鍵“ 1 0 0 0 0 1 ”來進行分割。若是藉由此分割鍵,而實行於圖 18中所示之步驟S1 803的檢索處理,則作爲檢索結果所得 到之索引鍵,係爲索引鍵251g之“1 0001 1 ”。然而’應作 爲分割點之索引鍵,係爲被儲存在葉節點211c中之以 “1 0000 1 ”作爲上限的上限値“011010” ’或是被儲存在葉節 點21 lg中之以“1 0000 1 ”爲下限的下限値“1 000 1 0”,而不論 在何者之情況中,均不會與以分割鍵“1 00001”作檢索後的
結果一致。 故而,在求取分割節點前,有必要先將分割鍵因應於 其定義而作爲被包含在處理源頭中之索引鍵並求取出。 圖1 9,係爲說明在求取最初之分割節點的處理流程之 後段的圖。後段之處理,係探索處理源頭之探索路徑堆疊 ,並求取出最初之節點[〇],而作爲分割節點之配列號碼 並設定者。 如圖1 9所示一般,在步驟S 1 9 0 1中,判定探索經路堆 疊之堆疊指標是否指向根節點之配列號碼。若是探索路徑 堆疊之堆疊指標係指向根節點的配列號碼,則前進至步驟 S 1 906,並將根節點之配列號碼,設定爲分割節點之配列 號碼,而結束處理。 若是探索路徑堆疊之堆疊指標係並非指向根節點的配 列號碼,則前進至步驟S 1 902,並從探索路徑堆疊中取出 配列號碼,而將堆疊指標減去1個。 接下來,在步驟S 1 903中,從以步驟S 1 902所取出之 配列號碼中,得出被配置在此配列號碼之配列要素中的節 -53- 200834356 點,係位於該當節點對之何側的位置。 而後,在步驟S 1 904中,判定在步驟S 1 903中所得到 之節點位置是否爲節點[1]側。 判定之結果,若是爲節點[1]側,則回到步驟S1 901之 處理,若是爲節點[〇]側,則移動至步驟S190S,將在步驟 S 1 902中所取出之配列號碼,作爲分割節點之配列號碼而 設定,並結束處理。
在圖3 0 A所示之例中,若是將根節點2 1 0a之配列號碼 220,設定爲檢索開始鍵,並藉由分割鍵“ 1 000 1 1 ”而實行 檢索處理,則會得到作爲檢索結果之索引鍵25 1 g,在探索 路徑堆疊中,係依序被堆疊有配列號碼220、22〇a + 1、 221b 、 220f+ 卜 故而,在圖19中所示之步驟SI 901之最初的處理中, 探索路徑堆疊之堆疊指標係指向配列號碼220f+ 1,接下 來,依據步驟 S 1 9 0 4之判定處理的結果,而回到步驟 S 1 9 0 1,在接下來之步驟S 1 9 0 4中,係探索1個,而判定出 配列號碼221b之節點21 Of的節點位置,並移動至步驟 S 1 905,將節點21 Of之配列號碼221b,作爲分割節點之配 列號碼而設定之。 於此,在針對分割處理作更進一步的說明前’先針對 :分割鍵係爲分割節點樹之最大値一事;和分割節點樹係 爲將分割鍵作爲最大値之處理源頭的部分樹中之最大的部 分樹,若以其他方法表現,則係爲該根節點之辨別位元位 置係爲最上位的部分樹一事,進行說明。 -54- 200834356 如同藉由到目前爲止之說明而可明知,分割節點,係 爲在以分割鍵來進行檢索時,直到到達分割鍵爲止之路徑 中所探索的最初之節點[〇]。
將分割鍵作爲索引鍵而包含的葉節點,若是爲節點 [〇],則該葉節點即爲分割節點本身,而分割節點樹係僅 由1個的葉節點所構成。存在於與此葉節點成對之節點[1 ] 側的葉節點之索引鍵,由於耦合節點樹之順序性,係全部 爲較分割鍵爲大。故而,在現在之例的情況中,在以較分 割鍵爲更上位之分支節點作爲根節點的部分樹中,分割鍵 係不可能成爲最大値,因此,分割鍵係爲分割節點樹之最 大値,分割節點樹係爲將分割鍵作爲最大値之處理源頭的 部分樹中之最大者。 若是將分割鍵作爲索引鍵而包含的葉節點係爲節點 [1 ],則只要對樹以節點[1 ]側來作探索,則由於耦合節點 樹之順序性,在任何之以節點[1 ]作爲根節點的部分樹中 ,上述分割鍵係均爲此些之部分樹的最大値。與此葉節點 成對之存在於節點[1 ]側的葉節點之索引鍵,由於耦合節 點樹之順序性,係全部較分割鍵爲大。而,當探索至節點 [〇]爲止時,在較此而更爲上位之節點的下位處,係存在 有與該當節點[〇]成對之節點[1 ]以下的節點,在此些之節 點中,係存在著包含有較上述分割鍵爲更大的索引鍵之葉 節點。 故而,以上述節點[0]亦即是,以分割節點作爲根節 點的部分樹,係爲將上述分割鍵作爲最大値而包含的最大 -55- 200834356 之部分樹。 以下,接著參考圖20以下,而進行分割處理之說明。 圖20,係爲展示身爲在圖17所示的步驟S004中之處 理目標的根節點之插入處理之處理流程的圖。 在步驟S2001中,係將儲存有在圖17中所示之處理流 程的步驟S002所求取之分割節點的配列要素之配列號碼 ,設定爲插入節點之配列號碼。
接下來,在步驟S2 003中,從配列中而取得空的節點 對之代表節點號碼。 接下來,在步驟S2004中,將在步驟S2003中所取得 之代表節點號碼,作爲節點[〇]之配列號碼而設定。 接下來,在步驟S2005中,將在步驟200 1中所設定之 插入節點的配列號碼所指向之配列要素的內容讀出,並儲 存在以步驟S2004所設定之節點[〇]之配列號碼所指向的配 列要素中。 最後,在步驟S2009中,將節點[0]之配列號碼作爲處 理目標之根節點之配列號碼而登錄,並結束根節點之插入 處理。 在圖30A以及圖30B之(b)的例示中,儲存有分割節點 2 1 Of之配列要素的配列號碼22 1 b,係被設定爲插入節點 之配列號碼,而所取得之空的節點對20 1 i之代表節點號碼 220’ ’係作爲節點[〇]之配列號碼而被設定。 而後,配列號碼22 1 b所指向之配列要素的內容,亦 即是分割節點2 1 Of之內容,係被儲存在配列號碼220,所指 -56- 200834356 向之配列要素,亦即是被儲存在節點2 1 Oi中,而配列要素 220 ’’係作爲處理目標之根節點的配列要素而被登錄。 圖21,係爲展示在圖17所示的步驟S005中之藉由分 割鍵與處理目標的最小値而求取出差分位元位置之處理流 程的圖。 如圖21所示一般,在步驟S2 101中,將處理目標之根 節點的配列號碼,作爲檢索開始節點之配列號碼而設定之 接下來,在步驟S2 102中,實行於圖5中所示之最小 値檢索,並得到處理目標之索引鍵的最小値。 接下來,在步驟S2 103中,將在圖17所示之步驟SO 10 中所設定的分割鍵與在步驟S2 1 03中所得到之最小値進行 位元列比較,並求取出從上位第0位元起所見到之最初的 不一致位元位置,而作爲差分位元位置來設定。
另外,在上述步驟S21 01中,雖係將處理目標之根節 點的配列號碼,作爲檢索開始節點之配列號碼而設定,但 是,由於明顯的,在最後所插入之處理目標中之分割節點 樹中,係包含有處理目標之最小値,因此,藉由將最後所 插入之分割節點,例如在圖30B之(b)中所例示的處理目 標中,將節點2 1 0j之配列號碼220j作爲檢索開始節點之 配列號碼而設定,能夠減輕最小値檢索之處理。 圖22,係爲說明在圖17所示的步驟S006中之根節點 以外的對處理目標之插入處理之處理流程的圖。 最初,在步驟S220 1中,係將儲存有在圖I7中所示之 -57- 200834356 處理流程的步驟S008中所求取之分割節點的配列要素之 配列號碼,作爲插入節點之配列號碼而設定之。此步驟 S2201,相較於在圖20所示之步驟S2001,僅在求取分割 節點之處理步驟係爲步驟S0 08之點上爲相異。 接下來,在步驟S2202中,作爲處理目標之插入位置 ,設定根節點之配列號碼。
接下來之步驟S2203〜步驟S2205中,係與圖20所示 之根節點的插入處理之步驟S 2 0 0 3〜步驟S 2 0 0 5相同。 在步驟S2203中,從配列中,取得空的節點對之代表 節點號碼,接下來,在步驟S2204中,將在步驟S2203中 所取得之代表節點號碼,設定爲節點[0]之配列號碼,接 下來,在步驟S2205中,將在步驟S220 1中所設定之插入 節點的配列號碼所指向之配列要素的內容讀出,並儲存在 以步驟S2204所設定之節點[〇]的配列號碼所指向之配列要 素中。 接下來,前進至步驟S2206,將在步驟S2203中所取 得之代表節點號碼上加算上値“ 1 ”之後的値,作爲節點[1 ] 之配列號碼而設定。 接下來,在步驟S2007中,將在步驟2202中所設定之 處理目標之插入位置的配列號碼所指向之配列要素的內容 讀出,並儲存在以步驟S2006所設定之節點[1]之配列號碼 所指向的配列要素中。 最後,在步驟S221 8中,在節點種類別中設定分支, 在辨別位元位置中設定以圖1 7所示之步驟S 0 0 5所求取的 -58 - 200834356 辨別位元位置,在代表節點號碼中設定以步驟S2204所設 定之節點[〇]的配列號碼,而形成分支節點,並儲存在以 步驟S2202所設定之處理目標的插入位置之配列號碼所指 向的配列要素中,而結束處理。
在圖30B以及圖30C之例示中,儲存有分割節點210b 之配列要素的配列號碼220a,係被設定爲插入節點之配列 號碼,而作爲處理目標之插入位置,係設定有根節點2 1 0i 之配列號碼220’。又,所取得之空的節點對201j之代表節 點號碼22 Oj,係作爲節點[0]之配列號碼而被設定。 而後,插入節點之配列號碼220a所指向之配列要素 的內容,亦即是分割節點2 1 Ob之內容,係被儲存在節點 [〇]之配列號碼220j所指向之配列要素,亦即是被儲存在 節點21 Oj中。 另一方面,身爲在代表節點號碼220j上加上1後所得 到之値的配列號碼220j + l所指向的配列要素中,亦即是節 點2 11 j中,係被儲存有處理目標之插入位置的配列號碼 220’所指向之配列要素、亦即是圖30B之(b)中所示之根節 點21 0i的內容。 而,在圖30C之(b)所示的根節點210i之辨別位元位 置2 3 0 i中,係儲存有在關於先前之圖1 7的步驟S 0 0 5之例 示中所說明的身爲分割節點樹292之最大値的索引鍵 25 lc“0 1 1〇1〇”、與身爲處理目標之最小値的索引鍵 2 5 0g“1 0 00 1 0”,其兩者間的差分位元位置“ 0” 。又,在 代表節點號碼中’係被儲存有節點[0]之配列號碼220j。 -59— 200834356 如同由上述說明而能夠理解一般,在產生插入目標後 之插入處理,係在插入目標之根節點的正下方,插入由分 支節點彼此所成之節點對,並在該節點對之節點[1 ]以下 ,連接上既存之處理目標的根節點以下之部分樹’並在節 點[〇]處,連接上分割節點樹者。藉由此處理’明顯的, 在將分割節點樹插入後之插入目標的順序性係被保持。
圖23,係爲展示在圖17所示的步驟S007中之分割節 點樹的削除處理之處理流程的圖。同樣的,在削除處理中 ,雖亦係有類似之點,但是,相對於圖1 6所示之削除處理 係將身爲儲存有削除鍵之葉節點的削除節點作削除,在圖 23中所示者,基本上係將身爲分支節點之分割節點削除, 而從處理源頭,以該分割節點作爲根節點之分割節點樹係 被削除。 首先,在步驟S23 0 1中,係將儲存有在圖17中所示之 步驟S002中或是步驟S008中所求取之分割節點的配列號 碼,作爲處理源頭之削除節點的配列號碼而設定之。 接下來,判定在步驟S2301中所設定之削除節點的配 列號碼,是否與處理源頭之根節點的配列號碼一致。當削 除節點之配列號碼,係與處理源頭之根節點的配列號碼一 致時,則前進至步驟S2303,將處理源頭之根節點的代表 節點號碼所指向之節點對削除,接下來,在步驟S2304中 ,將處理源頭之根節點的配列號碼之登錄抹除,而結束處 理。 步驟S2302之判定處理的結果,當削除節點之配列號 • 60- 200834356 碼與處理源頭之根節點的配列號碼爲不一致時’則前進至 步驟S2 305,求取出與在步驟S2 301中所設定之削除節點 成對的節點之配列號碼,並作爲對節點之配列號碼而設定
接下來,在步驟S2306中,從處理源頭之探索路徑堆 疊中取出配列號碼,並將該所取出之配列號碼,作爲在步 驟S23 07中之母節點的配列號碼而設定,同時,使母節點 之代表節點號碼暫時退避至他處。另外,在處理源頭之探 索路徑堆疊中,係藉由圖19所示之步驟S 1 902或是於後所 說明之圖24所示之步驟S2402的處理,而被儲存有身爲分 割節點之近旁上位的母節點之配列號碼。 接下來,在步驟S2308中,將在步驟2305中所設定之 對節點的配列號碼所指向之配列要素的內容讀出,並儲存 在以步驟S2 3 07所設定之母節點的配列號碼所指向之配列 要素中。 最後,在步驟S2309中,將在步驟S2307中所暫時退 避至他處之母節點的代表節點號碼所指向之節點對削除, 並結束處理。 圖24,係爲展示在圖1 7所示的步驟S 00 8中之求取下 一個分割節點的處理之處理流程的圖。 在步驟S2401中,判定處理源頭之探索經路堆疊的堆 疊指標是否指向根節點之配列號碼。若是處理源頭之探索 路徑堆疊的堆疊指標係指向根節點之配列號碼,則送回「 無分割節點」。 -61 - 200834356 若是探索路徑堆疊之.堆疊指標係並非指向根節點的配 列號碼’則前進至步驟S2402,並從探索路徑堆疊中取出 配列號碼,而將探索路徑堆疊之堆疊指標減去1個。 接下來,前進至步驟S2403中,從以步驟S2402所取 出之配列號碼中,得出被配置在此配列號碼所指向之配列 要素中的節點之節點位置。
接下來,在步驟S2404中,判定在步驟S2403中所得 到之節點位置是否爲節點[〇 ]側。判定之結果,若是爲節 點[〇]側’則回到步驟S2401之處理,若是爲節點⑴側, 則移動至步驟S 2 4 0 6,將從在步驟S 2 4 0 2中所取出之配列 號碼處減去値1後所得到之節點[〇]之配列號碼,作爲分割 節點之配列號碼而設定,並送回「有分割節點」。 在圖30Α及圖30Β之例示中,在求取出下一個分割節 點的階段中,由於處理源頭之探索路徑堆疊的堆疊指標, 係指向身爲分割節點210f之母節點的配列號碼之220 a+1 ,而節點位置係成爲節點[1 ]側,因此,與此成對之位置 於節點[〇]側的節點2 1 Ob,係成爲下一個分割節點,而身 爲儲存有此之配列要素的配列號碼之220a,係作爲分割節 點之配列號碼而被設定。 又,在圖30B及圖30C之例示中,在更進一步求取接 下來之分割節點的階段中,由於處理源頭之探索路徑堆疊 的堆疊指標係指向身爲節點2 1 Ob之母節點的根節點2 1 〇a 之配列號碼220,因此,上述步驟S2401之判定處理的結 果係送回「無分割節點」。亦即是,若是分割節點之母節 -62- 200834356 點係成爲根節點,則下一個分割節點係不存在。此事,從 耦合節點樹之順序性來看,係爲當然。 圖25,係爲展示求取出以在圖17所示的步驟S008所 求取之分割節點作爲根節點的分割節點樹之最大値,並作 爲下一個分割鍵的步驟S 〇 1 0之處理流程的圖。
首先,在步驟S250 1中,使處理源頭之探索經路堆疊 的堆疊指標之値暫時退避至他處。其理由,係因爲經由在 圖19所示之步驟 S1902,或是經由在圖24所示之步驟 S24 02之處理,分割節點之母節點的配列號碼所指向之處 理源頭的堆疊指標之値,係會因爲後述之步驟S2503的最 大値檢索而變動,而變得無法在圖23所示之步驟S2306中 來使用之故。 接下來,在步驟S2502中,將在圖24之步驟S2406中 所設定之分割節點的配列號碼,作爲檢索開始節點之配列 號碼而設定。 而後,在步驟S2 5 03中,實行於圖6中所示之最大値 檢索,並求取出索引鍵的最大値。 接下來,前進至步驟S2504,將在步驟S2502中所得 到之最大値是否,作爲分割鍵而設定。 最後,在步驟S2505中,將在步驟S250 1中所暫時退 避至他處的値,作爲處理源頭之探索路徑堆疊的堆疊指標 之値而復原,並結束處理。 以上,如同從參考.圖24及圖25而詳細說明後可理解一 般,在圖17之步驟S008中所求取之下一個分割節點,與 -63- 200834356 在步驟S010中所求取之下一個分割鍵間之關係’係與在 先前所說明之步驟001所設定之分割鍵與在步驟S002所求 取之分割鍵、或是分割節點樹間之關係爲相同。
可以明白,在上述步驟S010所求取之下一個分割鍵 ,係爲以在步驟s 0 0 8所求取之下一個分割鍵作爲根節點 之分割節點樹的最大値。又,由於在步驟S008所求取之 下一個分割節點,係爲節點[〇],因此,由耦合節點樹之 順序性,可以明顯得知,將較此爲更上位之節點作爲根節 點的部分樹,係包含著儲存有較在步驟S010中所求取之 下一個分割鍵爲更大的索引鍵之葉節點。 雖藉由以上,而針對實施例3所致之耦合節點樹的分 割處理作了詳細說明,但是,若藉由實施例3,則係以分 割耦合節點樹單位來進行分割處理。亦即是,將分割節點 從處理源頭而分割,並將分割節點之對節點複製至母節點 中,藉由此,分割節點樹係從處理源頭而被削除,並藉由 將分割節點插入至處理目標中,而完成分割節點樹之插入 故而,只要是使用相同之配列,則對於分割節點以外 之節點的處理係成爲不必要,相較於實施例2的情況,處 理的實行步驟係能夠變得更少。 接下來,針對於分割處理同樣地以部分樹單位來進行 處理之實施例3所致的耦合節點樹之結合處理作說明。本 實施例之結合處理,係和實施例1以及實施例2之結合處理 大不相同,相對於實施例1以及實施例2之結合處理係以索 -64- 200834356 引鍵單位,換言之,係以節點單位來進行結合處理,本實 施例係爲將滿足特定之條件的部分樹單位從處理源頭分割 並結合至處理目標處者。相對於在實施例1與實施例2之結 合處理中,係藉由對分割鍵作選擇,而將分割處理直接作 適用,若是如同本實施例一般地以部分樹單位來進行結合 處理,則無法將分割處理單純地作適用。
此係因爲,處理源頭以及處理目標,係分別具備有因 應於被儲存在其內部之索引鍵的差分位元位置之構造,因 此,並不一定能夠將處理源頭本身作爲分割節點樹而直接 插入至處理目標中。 圖26,係爲說明在實施例3中之耦合節點樹的結合處 理流程之圖。在以下之說明中,雖係將處理目標之索引鍵 設爲較處理源頭之索引鍵爲更大,但是,由下述之說明, 應可容易地理解,就算是在相反的狀況下,亦同樣的可進 行處理。 圖3 1 A〜圖3 1 C,係爲將上述結合處理藉由實例來作 說明之圖,並例示有與在圖2B中所例示之耦合節點樹之 部分樹相類似之樹。 圖31A,係爲展示結合處理開始前之處理源頭與處理 目標之樹的構造例之圖。在圖31 A之(a)中,係例示有處 理源頭,此係展示有··身爲於其配列號碼被附加有符號 220a+ 1之分割結合節點與以其作爲根節點之部分樹,而成 爲結合處理之單位的部分樹之分割結合節點樹293。以後 ,係有將表示節點之符號,以在藉由檢索處理而探索至該 -65- 200834356 節點時’被堆疊在探索路徑堆疊中之該節點所被配置的配 列要素之配列號碼來作表示的情形。 在圖3 1 A之(b)中,係例示有處理目標,而成爲結合 位置之節點,係附加有該配列號碼之符號22〗f而被表示 。又’在圖3 1 A中’係亦展示有··處理源頭之最大値係爲 索引鍵25 lg之“101001”,而處理目標之最小値係爲索引 鍵 25 Oh 之 “10101 1”。
圖31B,係爲展示有將在圖31A中所示之分割結合耦 合節點樹2 9 3插入至處理目標中,並將其從處理源頭削除 後的樹構造之圖,在圖31B之(a)中,處理源頭之下一個分 割結合節點樹2 94,係被以點線來包圍而展示,並顯示有 :最大値係爲索引鍵251d之“011010”。在圖31B之(b)中 ’係分別將處理目標之被結合的分割節點樹293、藉由結 合處理所追加之節點對201k與節點221f之連結關係,以 點線來包圍而展示,並展示有:下一個結合位置係爲節點 221° 圖31C’係爲展不有將在圖31B中所不之分割結合節 點樹294插入至處理目標中,並將其從處理源頭削除後的 樹構造之圖。由於在圖3 1 B之(a)中所示的處理源頭之下一 個分割結合節點220係爲根節點,因此,處理源頭之根節 點係被削除,在圖3 1 C之(a)中,係並未表示有任何東西。 在圖31C之(b)中,係分別將處理目標之被結合的分割節 點樹294、藉由結合處理所追加之節點對201m與節點221 之連結關係,以點線來包圍而展示。 •66- 200834356 以下,對圖1 5以及圖3 1 A〜圖3 1 C作參考,而對本實 施例之結合處理的槪要作說明。
在圖2 6之步驟S 2 6 0 1中,求取出處理源頭之最大値與 處理目標之最小値的差分位兀位置。在圖31A之例不中, 係求取出有處理源頭之最大値“ 1 0 1 00 1”與處理目標之最小 値“101011”的差分位元位置4。求取差分位元位置之處理 的詳細,係於後參考圖27而作說明。另外,在以下之說明 中,係亦有將在此步驟S260 1中所求取之差分位元位置單 純稱爲差分位元位置的情形。 接下來,在步驟S2602中,藉由在步驟S260 1所求取 出之差分位元位置,來求取出處理源頭之分割結合節點。 在圖31A之例示中,係求取出有分割結合節點220a+Ι。對 此處理的詳細內容,係於後參考圖2 8而作說明。 接下來,前進至步驟S2603中,藉由在步驟S2601所 求取出之差分位元位置,來求取出用以將在步驟S2602中 所求取出之分割結合節點作插入之處理目標的結合位置。 在圖31A之例示中,係求取出有結合位置22 If。對此處理 的詳細內容,係於後參考圖29而作說明。 接下來,在步驟S2604中,在步驟S2603所求取出之 結合位置處,插入在步驟S2602中所求取出之分割結合節 點。此處理,係可藉由在參考圖22而作了說明之插入處理 中,作爲步驟S2201之插入節點的配列號碼,設定在步驟 S2 602中所求取之分割結合節點的配列號碼,並在步驟 S22 02之處理目標的插入位置中,設定在步驟S2603中所 -67- 200834356 求取出之結合位置的配列號碼,並實行該插入處理,而實 現之。
在圖31A以及圖31B之例示中,在圖22之步驟S220 1 中,係將分割結合節點220a+l之配列號碼220a+l,設定於 插入節點設定區域中,而在步驟S22 02中,在插入位置設 定區域中,設定結合位置22 1 f之配列號碼22 1 f。接下來, 在步驟S2203中,取得空的節點對201k,將該代表節點號 碼220k,在步驟S2004中,作爲節點[0]之配列號碼而設定 而後,在步驟S2205中,將被設定於插入節點設定區 域中之配列號碼22〇a+ 1所指向之配列要素的內容,亦即是 分割節點221b之內容讀岀,並儲存在作爲節點[0]之配列 號碼而被設定之配列號碼220k所指向之配列要素,亦即 是被儲存在節點210k中。 進而,在步驟S2206中,將身爲在代表節點號碼220k 上加上了 1後之値的22Ok+1,作爲節點[1]之配列號碼而設 定。而後,將在步驟S2207中,被作爲插入位置而設定之 配列號碼22 0 1 f所指向之配列要素’亦即是節點2 1 Oh之內 容讀出,並儲存在作爲節點[1 ]之配列號碼而被設定之配 列號碼220k+l所指向之配列要素,亦即是儲存在節點21 Ik 中〇 最後,在步驟S2208中,在作爲插入位置而被設定之 配列號碼22 1 f所指向的配列要素’亦即是節點2 1 Oh之位 置中,將節點種類別設爲0,將辨別位元位置設爲於圖2 6 -68- 200834356 之步驟S2 6 0 1中所求取之差分位元位置4,將代表節點號 碼設爲作爲節點[0]之配列號碼而設定之配列號碼220k, 而產生新的分支節點,而得到了圖3 1 B之(b)中所示之結 合後的處理目標之構造。
接下來,若是回到圖26所致之樹結合處理的說明,則 在步驟S2605中,從處理源頭而將分割結合節點削除。此 處理,係可藉由在參考圖23而作了說明的削除處理中,將 分割節點代換讀取爲分割結合節點並實行而實現之。 接下來,前進至步驟S2606,判定處理源頭是否有被 登錄。若是有被登錄,則回到步驟S2601,並反覆進行處 理,若是未被登錄,則由於結合處理係已結束,故結束處 理。 接下來,——面參考圖27〜圖29,一面對本實施例之結 合處理作詳細說明。 圖27,係爲展示在圖26所示的步驟S2 601中之求取差 分位元位置的處理之詳細處理流程的圖。首先,在步驟 S2701中,將處理源頭之根節點的配列號碼,作爲檢索開 始節點之配列號碼而設定之。接下來,在步驟S2702中, 藉由於圖6中所示之檢索處理,而求取出處理源頭之索引 鍵的最大値。 接下來,前進至步驟S2703中,將處理目標之根節點 的配列號碼,作爲檢索開始節點之配列號碼而設定之。接 下來,在步驟S27 04中,藉由於圖5中所示之檢索處理, 而求取出處理目標之索引鍵的最小値。 -69- 200834356 接下來,在步驟S2705中,將在步驟S2702中所求取 的最大値,與在步驟S2704中所求取之最小値進行位元列 比較,並求取出從上位第0位元起所見到之最初的不一致 位元位置,而作爲差分位元位置來設定,並結束處理。
如同先前所述一般,在圖31A之例示中,係求取出有 處理源頭之最大値“ 1 0 1 0 0 1”與處理目標之最小値“ 1 0 1 0 1 1,, 的差分位元位置4。而,在處理源頭與處理目標中,均並 不存在有辨別位元位置與此差分位元位置爲相等之分支節 點。 此係因爲,由於相較於處理源頭之最大値,處理目標 之最小値係爲更大,因此,處理源頭之最大値的差分位元 位置的位元値係爲0,如果,在處理源頭之分支節點中, 存在有辨別位元位置與差分位元位置爲相等者,則處理源 頭之最大値係成爲節點[〇],而會與身爲最大値一事產生 矛盾之故。關於處理目標,亦爲相同。 接下來’說明求取處理源頭之分割結合節點的處理。 分割結合節點’除了處理源頭係僅存在有根節點的例外之 外’係爲在以最大値檢索所探索之分支節點中,辨別位元 位置爲較在圖26所示之步驟S 26 01中所求取出之差分位元 位置爲更下位者之中,身爲最上位之分支節點。 若是將以分割結合節點作爲根節點之處理源頭的部分 樹,稱爲分割結合節點樹,則本實施例之結合處理,係爲 以分割結合節點樹單位而進行結合處理者。 圖2 8 ’係爲對圖2 6所示的步驟s 2 6 0 2之求取處理源頭 -70- 200834356 的分割結合節點之處理流程作說明的圖。另外,在求取分 割結合節點之處理的開始時,處理源頭之探索路徑堆疊的 堆疊指標,係指向在圖26所示之步驟S2601中的最大値檢 索之結果,亦即是,係指向儲存有索引鍵之最大値的葉節 點之配列號碼。
在步驟S2801中,判定處理源頭之探索經路堆疊的堆 疊指標是否指向根節點之配列號碼。當處理源頭之探索路 徑堆疊的堆疊指標係指向根節點之配列號碼的情況時,係 前進至步驟S 2 8 1 0,當處理源頭之探索路徑堆疊的堆疊指 標係並非指向根節點之配列號碼的情況時,則係前進至步 驟 S2802 〇 在步驟S2802中,係將探索路徑堆疊之堆疊指標倒退 一個’並取出該堆疊指標所指向的配列號碼,而前進至步 驟 S2803 。 在步驟S2803中,係將在步驟S2802中所取出之配列 號碼所指向的配列要素之內容作爲節點而取出,並在步驟 S2 3 04中,取得所取出之節點的辨別位元位置。 接下來,在步驟S2805中,判定以步驟S2804所取得 之辨別位元位置是否爲較差分位元位置更上位之位置關係 。若是爲下位,則回到步驟S280 1,若是爲上位,則前進 至步驟S2809。如同先前所述一般,並不會有上述之辨別 位元位置與差分位元位置成爲相<等的情況。 在步驟S2809中,係將處理源頭之探索經路堆疊的堆 疊指標前進一個,並移動至步驟S2810。 -71 - 200834356 在步驟S2810中’從處理源頭之探索路徑堆疊中,將 堆疊指標所指向的配列號碼取出,並作爲處理源頭之分割 結合節點的配列號碼而設定,而結束處理。另外,在以下 之說明中,亦有將於此所設定之配列號碼,單純稱爲分割 結合節點之配列號碼的情況。 若是將上述處理參考圖3 1 A以及圖3 1 B而作說明,則 係爲如下所示一般。
在圖3 1 A之例示中,若是從儲存有鍵之最大値的節點 2 1 1 g起,對探索路徑作探索,則一開始,由於堆疊指標 係指向節點21 lg之配列號碼221b,因此,步驟S280 1之判 定係成爲「否」,而反覆進行從步驟S2801起之處理,由 於差分位元位置係爲4,因此,在步驟S 2 8 0 2之處理中, 係到達了根節點2 1 0a,而由於根節點2 1 0a之辨別位元爲 係爲〇,且爲較差分位元位置爲更上位,因此,在步驟 S 2 8 0 5之判定處理中,係分歧至步驟 s 2 8 0 9,藉由步驟 S 2 8 0 9之處理,將探索路徑前進1個,而求取出分割結合節 點 220a+l 。 在圖3 1 B之例示中,若是從儲存有鍵之最大値的節點 211d起’對探索路徑作探索,則由於差分位元位置係爲〇 ,因此,在步驟S28 02之處理中,係到達了根節點21〇a, 而由於根節點2 1 0a之辨別位元爲係爲1,且爲較差分位元 位置爲更下位,因此,在步驟S2 8 05之判定處理中,係分 歧至步驟S 2 8 0 1,藉由步驟S 2 8 0 1之判定處理,係被判定 爲根節點,而分歧至步驟S2810,將根節點210a,作爲下 -72- 200834356 一個分割結合節點而求取出來。
接下來,說明求取處理目標之結合位置的處理。在結 合處理後之處理目標中,由於係被插入儲存有索引鍵之最 大値的葉節點,因此,係新存在有具備與差分位元位置相 等之値的辨別位元位置之分支節點。亦即是,係成爲將具 備有與差分位元位置相等之値的辨別位元位置之分支節點 ’插入至在最小値檢索中所探索了的路徑中,而將此插入 位置作爲處理目標之結合位置。 在耦合節點樹中,下位之分支節點的辨別位元位置, 由於係爲較上位之分支節點的辨別位元位置爲更下位,因 此,具備較差分位元位置爲更近旁上位之辨別位元位置的 分支節點之子節點的位置,係成爲結合位置,或是,若是 例外地不存在有具備上位之辨別位元位置的分支節點,則 根節點係成爲結合位置。 在被插入至結合位置中之分支節點的子節點對之節點 [1 ]側中,係存在著儲存有結合前之處理目標的索引鍵之 最小値的葉節點,而節點[〇]係爲分割結合節點。 圖2 9,係爲說明求取上述處理目標之結合位置的處理 流程之圖。如圖29所示一般,求取處理目標之結合位置的 處理流程,係爲和在圖28中所示之求取處理源頭之分割結 合節點的處理流程爲相同的構造。圖29之處理流程,係爲 關於處理目標者,而僅在所求取者係爲結合位置一事上係 爲相異。另外’在求取處理目標之結合位置之處理的開始 時’處理目標之探索路徑堆疊的堆疊指標,係指向在圖2 6 -73- 200834356 所示之步驟S2601中的最小値檢索之結果,亦即是,係指 向儲存有索引鍵之最小値的葉節點之配列號碼。 在步驟S2901中,判定處理目標之探索路徑堆疊的堆 疊指標是否指向根節點之配列號碼。當處理目標之探索路 徑堆疊的堆疊指標係指向根節點之配列號碼的情況時,係 前進至步驟S2910,當處理目標之探索路徑堆疊的堆疊指 標係並非指向根節點之配列號碼的情況時,則係前進至步
驟 S2902 〇 在步驟S2902中,係將探索路徑堆疊之堆疊指標倒退 一個,並取出配列號碼,而前進至步驟S29 03。 在步驟S2903中,係將在步驟S2902中所取出之配列 號碼所指向的配列要素之內容作爲節點而取出,並在步驟 S 29 04中,取得所取出之節點的辨別位元位置。 接下來,在步驟S2905中,判定以步驟S2904所取得 之辨別位元位置是否爲較差分位元位置更上位之位置關係 。若是爲下位,則回到步驟S2 90 1,若是爲上位,則前進 至步驟S2909。如同先前所述一般,並不會有上述之辨別 位元位置與差分位元位置成爲相等的情況。 在步驟S2909中,係將處理源頭之探索經路堆疊的堆 疊指標前進一個,並移動至步驟S2910。 在步驟S2910中,從處理目標之探索路徑堆疊中,將 堆疊指標所指向的配列號碼取出,並作爲處理目標之結合 位置的配列號碼而設定,而結束處理。另外,在以下之說 明中,亦有將於此所設定之配列號碼,單純稱爲結合位置 -74- 200834356 之配列號碼的情況。 若是將上述處理參考圖31A以及圖31B而作說明,則 係爲如下所示一般。
在圖3 1 A之例示中,若是從儲存有鍵之最小値的節點 2 1 Oh起,對探索路徑作探索,則由於差分位元位置係爲4 ,且藉由步驟S2904所取出之根節點21 Of的辨別位元位置 係爲3,因此,從步驟S2905起,分歧至步驟S2909,藉由 步驟S2909之處理,將探索路徑堆疊前進1個,而求取出 結合位置之配列號碼221 f。 在圖3 1 B之例示中,若是從儲存有鍵之最小値的節點 2 1 〇g起,而對探索路徑作探索,則由於差分位元位置係 爲〇,因此,係到達根節點21 Of,並在步驟S2901中,被 判定出其係爲根節點,而分歧至步驟S 2 9 1 0,並將根節點 2 1 Of之配列號碼22 1,作爲下一個結合位置之配列號碼而 求取出來。 雖藉由以上’而針對實施例3所致之耦合節點樹的結 合處理作了詳細說明,但是,若藉由實施例3,則係以分 割結合節點樹單位來進行結合處理。亦即是,將分割結合 節點從處理源頭而分割,並將分割結合節點之對節點複製 至母節點中,藉由此,分割結合節點樹係從處理源頭而被 削除,並藉由將分割結合節點結合於處理目標,而完成分 割結合節點樹之結合。 故而,只要是使用相同之配列,則對於分割結合節點 以外之節點的處理係成爲不必要,相較於實施例2的情況 -75- 200834356 ,處理的實行步驟數係能夠變得更少。 以上。雖係對用以實施本發明之最佳實施形態作了說 明,但是,同業者應可清楚明白,本發明之實施形態係並 不限定於此,而可作各種之變形。
明顯的,藉由將以上所說明之本發明的實施形態所致 之賴合節點樹之分割結合處理以及與此些均等之物於電腦 上實行的程式’能夠實現本發明之耦合節點樹之分割方法 以及結合方法。 故而’上述程式、以及記憶有程式而爲電腦可讀取之 記憶媒體,係亦包含於本發明之實施形態內。 【圖式簡單說明】 [圖1]展示在先前之檢索中所使用的帕翠西雅樹之其 中一^例的圖。 [圖2A]說明被儲存於配列中之耦合節點樹的構成例之
[圖2B]將耦合節點樹之樹狀構造作槪念展示的圖。 [圖3 ]說明用以實施本發明之硬體的構成例之圖。 [圖4]展示位元列檢索的基本動作之流程圖。 [圖5]展示求取出被儲存於耦合節點樹中之索引鍵的 最小値之處理的流程圖。 [圖6]展示求取出被儲存於耦合節點樹中之索引鍵的 最大値之處理的流程圖。 [圖7A]展示求取索引鍵的下限値之處理的前段之流程 -76 - 200834356 圖。 [圖7B]展示求取索引鍵的下限値之處理的後段之流程 圖。 [圖8 A]展示求取索引鍵的上限値之處理的前段之流程 圖。 [圖8B]展示求取索引鍵的上限値之處理的後段之流程 圖。
[圖9A]展示身爲插入處理之前段的檢索處理之處理流 程的圖。 [圖9B]說明將插入之節點對所需要的配列要素作準備 之處理的處理流程圖。 [圖9C]展示對插入節點對之位置作求取,並將節點對 之各節點的內容作寫入,而完成插入處理之處理流程的圖 [圖1 0]對將包含有根節點之插入處理的索引鍵作追加 時之節點插入處理全體作說明的處理流程圖。 [圖1 1 A]展示身爲削除處理之前段部分的檢索處理之 處理流程的圖。 [圖11B]說明削除處理之後段的處理流程之圖。 [圖1 2]說明在實施例1中之耦合節點樹的分割處理流 程之圖。 [圖1 3]說明在實施例2中之耦合節點樹的分割處理流 程之圖。 [圖1 4]說明在實施例2中之節點的插入處理流程之圖 -77- 200834356 [圖1 5 A ]說明在實施例2中之根節點設定處理的流程圖 [圖15B]說明在實施例2中之在母節點中將包含有插入 鍵的節點對作插入之處理流程之圖。 [圖1 6 ]說明在實施例2中之削除處理的流程圖。
[圖1 7]說明在實施例3中之耦合節點樹的分割處理流 程之圖。 [圖18]說明在求取最初之分割節點的處理流程之前段 的圖。 [圖1 9 ]說明在求取最初之分割節點的處理流程之後段 的圖。 [圖20]說明處理目標之根節點的插入處理之處理流程 的圖。 [圖2 1 ]對分割處理中之求取差分位元位置之處理流程 作說明的圖。 [圖22]說明根節點以外之插入處理的處理流程之圖。 [圖23]說明在實施例3中之削除處理的處理流程之圖 [圖24]說明求取下一個分割節點之處理的處理流程之 圖。 [圖25]說明求取分割節點樹之最大値,並作爲下一個 分割節點之處理的處理流程之圖。 [圖26]說明在實施例3中之耦合節點樹的結合處理流 -78- 200834356 程之槪要的圖。 [圖27]對結合處理中之求取差分位元位置之處理流程 作說明的圖。 [圖2 8 ]說明求取處理源頭之分割結合節點的處理流程 之圖。 [圖29]說明求取處理目標之結合位置的處理流程之圖
[圖3 0 A]對分割前之樹構造例作說明的圖。 [圖3 0B]對最初之分割後之樹構造例作說明的圖。 [圖3 0C]對接下來之分割後之樹構造例作說明的圖。 [ffl 3 1 A]對最初之結合處理前之樹構造例作說明的圖 [Β 3 1 Β]對最初之結合處理後之樹構造例作說明的圖 [Η 3 1 C]對接下來之結合處理後之樹構造例作說明的
【主要元件符號說明】 3 〇 1 :資料處理裝置 3〇2 :中央處理裝置 3〇3 :快取記憶體 3〇4 :匯流排 3〇5 :主記憶裝置 3〇6 :外部記憶裝置 -79- 200834356
3 07 :通訊裝置 3 08 :資料儲存裝置 3 09 :配列 3 1 0 :探索路徑堆疊 -80-
Claims (1)
- 200834356 十、申請專利範圍1 · 一種耦合節點樹之分割方法,該耦合節點樹,係由 根節點(root node)、與被配置於相鄰接之記憶區域中的分 支節點(branch node)與葉節點(leaf node)、又或是分支節 點彼此又或是葉節點彼此之節點對所成的使用於位元列檢 索之樹(tree),並具有以下構成:前述根節點,係爲表示 樹之起點的節點,當該樹之節點係爲1個時,係身爲前述 葉節點,而當該樹之節點係爲2個以上時,則係爲前述分 支節點,前述分支節點,係包含有表示進行位元列檢索之 檢索鍵的辨別位兀位置、以及身爲連接(link)目標之節點 對的其中一方之節點的代表節點之位置之位置資訊,前述 葉節點,係包含有由檢索對象之位元列所成的索引鍵 (index key), 將前述樹之任意的節點作爲檢索開始節點,在前述分 支節點中,因應於被包含在該分支節點中之辨別位元位置 之檢索鍵的位元値,而對連結目標之節點對的代表節點或 者是被配置於與其相鄰接之記憶區域中的節點作連結,並 依序反覆進行此,直到到達前述葉節點爲止,藉由此,將 被儲存於前述葉節點中之索引鍵,作爲身爲在將前述檢索 開始節點作爲根節點之前述耦合樹的任意之部分樹的前述 檢索鍵所致之檢索結果的檢索結果鍵, 該分割方法,其特徵爲,具備有以下步驟: 分割鍵取得步驟,係取得對將身爲分割對象之處理源 頭耦合節點樹作分割之索引鍵作決定的分割鍵;和 -81 - 200834356 處理源頭最小値或最大値取得步驟,係求取出前述處 理源頭耦合節點樹之索引鍵的最小値或者是最大値;和比較步驟,係對前述分割鍵與前述最小値或者是最大 値間之大小作比較,若是該最小値係較前述分割鍵爲更大 ,或是該最大値係較前述分割鍵爲更小,則結束處理;和 產生步驟,當前述比較之結果,該最小値係並未較前 述分割鍵爲更大,或是該最大値係並未較前述分割鍵爲更 小,則藉由將該最小値或者是該最大値之索引鍵插入,而 產生新的處理目標耦合節點樹;和 削除步驟,係從前述處理源頭耦合節點樹中,將前述 最小値或者是前述最大値之索引鍵削除, 將削除了前述最小値或者是前述最大値之索引鍵的前 述處理源頭耦合節點樹,作爲新的處理源頭耦合節點樹之 前述處理源頭最小値或是最大値取得步驟、前述比較步驟 '前述產生步驟、以及前述削除步驟,反覆進行此些,直 ©I以前述處理源頭最小値或是最大値取得步驟所取得之最 或者是最大値,成爲較前述分割鍵更大或者是更小爲 止0 2 ·如申請專利範圍第1項所記載之耦合節點樹之分割 方法’其中,前述最小値或是最大値取得步驟,係爲將前 述處理源頭耦合節點樹之根節點作爲檢索開始節點,在前 述節點對中,僅對構成該節點對之2個的節點中之代表節 點’或考是僅對被配置於與代表節點相鄰接之記憶區域中 的節點作連結,而到達葉節點,藉由此,來求取出前述處 -82- 200834356 理源頭耦合節點樹的索引鍵之最小値或者是最大値之步驟 3·如申請專利範圍第1項又或是第2項所記載之耦合節 點樹之分割方法,其中, 前述耦合節點樹,係被記憶在配列中,前述位置資訊 ,係爲儲存有對應於該位置資訊之節點的前述配列的配列 要素之配列號碼,儲存有前述檢索開始節點之配列要素的配列號碼,以 及從前述檢索開始節點起直到到達前述葉節點爲止之儲存 有連結目標之節點的配列要素之配列號碼,係爲被依序保 存在堆疊中者, 前述產生步驟,係爲包含有以下步驟者: 將在前述處理源頭最小値或是最大値取得步驟中所求 取之最小値或是最大値,作爲前述處理目標耦合節點樹之 插入鍵而設定, 實行前述之取得處理目標耦合節點樹的索引鍵之最大 値或是最小値的處理目標最大値或是最小値取得步驟, 對前述插入鍵與前述索引鍵之最大値或是最小値之間 進行位元列比較,而求取出成爲相異之位元値的前端之位 元位置, 藉由該位元位置與被儲存於前述堆疊中之配列號碼的 分支節點之辨別位元位置間的相對位置關係,來決定身爲 包含有保持前述插入鍵之葉節點的節點對之插入位置的處 理目標母節點, -83- 200834356 將該處理目標母節點之前述位置資訊,設爲包含有保 持前述插入鍵之葉節點的節點對之代表節點所被儲存之配 列要素的配列號碼。 4·如申請專利範圍第3項所記載之耦合節點樹之分割 方法,其中,前述產生步驟,係更進而具備有:將前述處理目標母 節點,作爲將包含有插入鍵之葉節點插入後之已完成插入 節點而設定之步驟, 前述處理目標最大値或是最小値取得步驟,係爲將前 述已完成插入節點作爲檢索開始節點,而取得前述處理目 標耦合節點樹之索引鍵的最大値或是最小値者。 5.如申請+專利範圍第4項所記載之耦合節點樹之分割 方法,其中,前述削除步驟,係包含有以下步驟: 將把藉由前述處理源頭最小値或是最大値取得步驟所 求取出之最小値或是最大値作爲索引鍵而包含的葉節點, 作爲前述處理源頭耦合節點樹之削除節點而設定, 將與前述削除節點構成同一節點對之節點的內容,寫 入至該當節點對之連結源頭的分支節點中, 將該當節點對削除。 6.—種耦合節點樹之結合方法,係使用有耦合節點樹 (coupled node tree),該耦合節點樹,係爲由根節點(ro〇t node)、與被配置於相鄰接之記憶區域中的分支節點 (branch node)與葉節點(leaf node)、又或是分支節點彼此 又或是葉節點彼此之節點對所成的使用於位元列檢索之樹 -84- 200834356 (tree),前述根節點,係爲表示樹之起點的節點,當該樹 之節點係爲1個時,係身爲前述葉節點,而當該樹之節點 係爲2個以上時,則係爲前述分支節點,前述分支節點, 係包含有表示進行位元列檢索之檢索鍵的辨別位元位置、 以及身爲連接(link)目標之節點對的其中一方之節點的代 表節點之位置之位置資訊,前述葉節點,係包含有由檢索 對象之位元列所成的索引鍵(index key),該耦合節點樹之結合方法,係爲將2個的耦合節點樹 作結合之結合方法,並如下述一般地被構成: 將前述樹之任意的節點作爲檢索開始節點,在前述分 支節點中,因應於被包含在該分支節點中之辨別位元位置 之檢索鍵的位元値,而對連結目標之節點對的代表節點或 者是被配置於與其相鄰接之記憶區域中的節點作連結,並 依序反覆進行此,直到到達前述葉節點爲止,藉由此,將 被儲存於前述葉節點中之索引鍵,作爲身爲在將前述檢索 開始節點作爲根節點之前述樹的任意之部分樹的前述檢索 鍵所致之檢索結果的檢索結果鍵, 其特徵爲,具備有以下步驟: 處理源頭最小値或最大値取得步驟,係求取出前述2 個的耦合節點樹之其中一方的處理源頭耦合節點樹之索引 鍵的最小値或者是最大値;和 插入步驟,係在前述2個的耦合節點樹之另外一方的 處理目標耦合節點樹中,插入前述最小値或者是前述最大 値之索引鍵;和 -85- 200834356 削除步驟,係從前述處理源頭耦合節點樹中,將前述 最小値或者是前述最大値之索引鍵削除, 將削除了前述最小値或者是前述最大値之索引鍵的前 述處理源頭耦合節點樹,作爲新的處理源頭耦合節點樹之 前述處理源頭最小値或是最大値取得步驟、前述插入步驟 、以及前述削除步驟,反覆進行此些,直到將前述處理源 頭耦合節點樹全部削除爲止。7·如申請專利範圍第6項所記載之耦合節點樹之結合 方法,其中, 前述耦合節點樹,係被記憶在配列中,前述位置資訊 ,係爲對應於該位置資訊之節點所被儲存之前述配列的配 列要素之配列號碼, 儲存有前述檢索開始節點之配列要素的配列號碼,以 及從前述檢索開始節點起直到到達前述前述葉節點爲止之 連結目標的節點所被儲存之配列要素之配列號碼,係依序 被保持在堆疊中, 前述插入步驟,係爲包含有以下步驟者: 將前述最小値或是前述最大値,作爲前述處理目標耦 合節點樹之插入鍵而設定, 實行取得前述處理目標耦合節點樹的索引鍵之最大値 或是最小値的處理目標最大値或是最小値取得步驟, 對前述插入鍵與前述索引鍵之最大値或是最小値之間 進行位元列比較,而求取出成爲相異之位元値的前端之位 元位置, -86- 200834356 藉由該位元位置與被儲存於前述堆疊中之配列號碼的 分支節點之辨別位元位置間的相對位置關係,來決定身爲 包含有保持前述插入鍵之葉節點的節點對之插入位置的母 節點, 將該母節點之前述位置資訊,設爲包含有保持前述插 入鍵之葉節點的節點對之代表節點所被儲存之配列要素的 配列號碼。8 ·如申請專利範圍第7項所記載之耦合節點樹之結合 方法,其中,前述削除步驟,係包含有以下步驟: 將把藉由前述處理源頭最小値或是最大値取得步驟所 求取出之最小値或是最大値作爲索引鍵而包含的葉節點, 作爲前述處理源頭耦合節點樹之削除節點而設定, 將與前述削除節點構成同一節點對之節點的內容,寫 入至該當節點對之連結源頭的分支節點中, 將該當節點對削除。 9 · 一種耦合節點樹之分割方法,係使用有耦合節點樹 (coupled node tree),該耦合節點樹,係爲由根節點(root node)、與被配置於相鄰接之記憶區域中的分支節點 (branch node)與葉節點(leaf node)、又或是分支節點彼此 又或是葉節點彼此之節點對所成的使用於位元列檢索之樹 (tree),前述根節點,係爲表示樹之起點的節點,當該樹 之節點係爲1個時,係身爲前述葉節點,而當該樹之節點 係爲2個以上時,則係爲前述分支節點,前述分支節點, 係包含有表示進行位元列檢索之檢索鍵的辨別位元位置、 -87- 200834356 以及身爲連接(link)目標之節點對的其中一方之節點的代 表節點之位置之位置資訊,前述葉節點,係包含有由檢索 對象之位元列所成的索引鍵(index key),該分割方法,係爲將前述耦合節點樹之任意的節點作 爲檢索開始節點,在前述分支節點中,因應於被包含在該 分支節點中之辨別位元位置之撿索鍵的位元値,而對連結 目標之節點對的代表節點或者是被配置於與其相鄰接之記 憶區域中的節點作連結,並依序反覆進行此,直到到達前 述葉節點爲止,藉由此,將被儲存於前述葉節點中之索引 鍵,作爲身爲在將前述檢索開始節點作爲根節點之前述耦 合樹的任意之部分樹的前述檢索鍵所致之檢索結果的檢索 結果鍵, 其特徵爲,包含有以下步驟: 取得將身爲分割對象之處理源頭耦合節點樹作分割的 分割鍵之步驟;和 在身爲前述處理源頭耦合節點樹之部分樹,且將前述 分割鍵作爲其之最大値或是最小値者之中,取得身爲最大 之部分樹的根節點之分割節點的分割節點取得步驟·,和 藉由將身爲以前述分割節點爲根節點之部分樹的分割 節點樹插入’而產生新的處理目標之耦合節點樹的產生步 驟;和 將前述分割節點樹從前述處理源頭耦合節點樹削除之 削除步驟。 1 〇·如申請專利範圍第9項所記載之耦合節點樹之分割 -88- 200834356 方法,其中,前述分割節點取得步驟,係將前述處理源頭之根節點 作爲前述檢索開始節點,並將前述分割鍵作爲前述檢索鍵 ,而進行檢索,並將身爲從前述根節點起直到前述分割鍵 爲止之檢索中的連結路徑上之分支節點,而在從該分支節 點出發之所有的連結目標處的節點中,均並不存在包含有 較前述分割鍵爲更大或是更小之索引鍵的葉節點,且係爲 在稱合節點樹上之最爲上位的分支節點,作爲前述分割節 點而取得。 11.如申請專利範圍第10項所記載之耦合節點樹之分 割方法,其中,係具備有: 下一分割節點取得步驟,其係將身爲和從前述根節點 起直到前述分割節點爲止之前述連結路徑上的分支節點一 同形成前述節點對之節點,而在耦合節點樹上之較該節點 更爲下位的所有葉節點中,均不包含有較前述分割鍵爲更 大或是更小的索引鍵,且爲耦合節點樹上之最爲上位的節 點’作爲下一個分割節點而取得, 將前述分割節點,作爲前述之下一個分割節點,並實 行前述產生步驟與前述削除步驟。 12·如申請專利範圍第10項又或是第項所記載之耦 合節點樹之分割方法,其中, 前述耦合節點樹,係被記憶於配列中,前述位置資訊 ’係爲儲存有對應於該位置資訊的節點之前述配列的配列 要素之配列號碼, -89- 200834356 儲存有前述檢索開始節點之配列要素的配列號碼’以 及儲存有從前述檢索開始節點起而到達前述葉節點爲止之 連結目標的節點之配列要素的配列號碼,係依序被保持在 堆疊中。 1 3 .如申請專利範圍第1 2項所記載之耦合節點樹之分 割方法,其中,前述分割節點取得步驟,係將被儲存在前述堆疊中之 配列號碼依序讀出,直到其成爲儲存有前述代表節點之配 列要素的配列號碼爲止,或是直到其成爲儲存有與前述代 表節點成對之節點的配列要素之配列號碼爲止,將在該讀 出之儲存有前述代表節點之配列要素的配列號碼或是在儲 存有與前述代表節點成對之節點的配列要素之配列號碼中 所儲存之節點,作爲前述分割節點而取得。 1 4.如申請專利範圍第1 3項所記載之耦合節點樹之分 割方法,其中, 前述下一分割節點取得步驟,係將被儲存在前述堆疊 中之儲存於較儲存有前述分割節點之配列要素的配列號碼 爲更前方之配列號碼依序讀出,直到其成爲儲存有與前述 代表節點成對之節點的配列要素之配列號碼爲止,或是直 到其成爲儲存有前述代表節點的配列要素之配列號碼爲止 ’將與在該讀出之儲存有與前述代表節點成對之節點的配 列要素之配列號碼或是儲存有前述代表節點的配列要素之 配列號碼中所儲存之節點成對之節點,作爲前述下一分割 節點而取得。 -90- 2008343561 5 · —種耦合節點樹之結合方法,係使用有耦合節點 樹(coupled node tree),該耦合節點樹,係爲由根節點 (root node)、與被配置於相鄰接之記憶區域中的分支節點 (branch node)與葉節點(leaf node)、又或是分支節點彼此 又或是葉節點彼此之節點對所成的使用於位元列檢索之樹 (tree),前述根節點,係爲表示樹之起點的節點,當該樹 之節點係爲1個時,係身爲前述葉節點,而當該樹之節點 係爲2個以上時’則係爲前述分支節點,前述分支節點, 係包含有表示進行位元列檢索之檢索鍵的辨別位元位置、 以及身爲連接(link)目標之節點對的其中一方之節點的代 表節點之位置之位置資訊,前述葉節點,係包含有由檢索 封象之位兀列所成的索引鍵(index key), 該耦合節點樹之結合方法,係爲將2個的耦合節點樹 作結合之結合方法,並如下述一般地被構成: 將前述樹之任意的節點作爲檢索開始節點,在前述分 支節點中,因應於被包含在該分支節點中之辨別位元位置 之檢索鍵的位元値,而對連結目標之節點對的代表節點或 者是被配置於與其相鄰接之記憶區域中的節點作連結,並 依序反覆進行此,直到到達前述葉節點爲止,藉由此,將 被儲存於前述葉節點中之索引鍵,作爲身爲在將前述檢索 開始卽點作爲根節點之前述樹的任意之部分樹的前述檢索 鍵所致之檢索結果的檢索結果鍵, 其特徵爲,具備有以下步驟: 處理源頭最大値或是最小値取得步驟,係求取出前述 -91- 200834356 2個的耦合節點樹之其中一方的處理源頭耦合節點樹之索 引鍵的最大値或者是最小値;和 處理目標最小値或最大値取得步驟,係求取出前述2 個的耦合節點樹之另外一方的處理目標耦合節點樹之索引 鍵的最小値或者是最大値;和差分位元位置取得步驟,係求取出··以前述處理源頭 最大値或最小値取得步驟所取得之處理源頭耦合節點樹的 索引鍵之最大値或是最小値,和以前述處理目標最小値或 最大値取得步驟所取得之處理目標耦合節點樹的索引鍵之 最小値或是最大値,其兩者之間的差分位元位置;和 分割結合節點取得步驟,係根據藉由前述差分位元位 置取得步驟所求取之差分位元位置,而求取出身爲從前述 處理源頭所分割並與處理目標結合之部分樹的根節點之分 割結合節點;和 結合位置取得步驟,係求取出根據藉由前述差分位元 位置取得步驟所求取之差分位元位置而將藉由分割結合結 點取得步驟所求得之分割結合節點相結合之處理目標的結 合位置;和 插入步驟,係將藉由前述分割結合節點取得步驟所求 得之分割結合節點,插入至藉由前述結合位置取得步驟所 求得之處理目標的結合位置中;和 削除步驟,係將藉由前述分割結合節點取得步驟所求 得之分割結合節點,從前述處理源頭耦合節點樹中削除。 16·如申請專利範圍第15項所記載之耦合節點樹之結 -92- 200834356 合方法,其中, 前述處理源頭最大値或是最小値取得步驟,係爲將前 述處理源頭耦合節點樹之根節點作爲檢索開始節點,在前 述節點對中,僅對構成該節點對之2個的節點中之代表節 點,或者是僅對被配置於與代表節點相鄰接之記憶區域中 的節點作連結,而到達葉節點,藉由此,來求取出前述處 理源頭耦合節點樹的索引鍵之最大値或者是最小値之步驟 τ 前述處理目標最小値或是最大値取得步驟,係爲將前 述處理目標耦合節點樹之根節點作爲檢索開始節點,在前 述節點對中,僅對構成該節點對之2個的節點中之代表節 點,或者是僅對被配置於與代表節點相鄰接之記憶區域中 的節點作連結,而到達葉節點,藉由此,來求取出前述處 理目標耦合節點樹的索引鍵之最小値或者是最大値之步驟1 7 ·如申請專利範圍第1 6項所記載之耦合節點樹之結 合方法,其中, 前述處理源頭耦合節點樹以及前述處理目標耦合節點 樹’係被記憶於配列中,前述位置資訊,係爲儲存有對應 於該位置資訊的節點之前述配列的配列要素之配列號碼, 儲存有在前述處理源頭最大値或是最小値取得步驟中 以及在前述處理目標最小値或是最大値取得步驟中之前述 檢索開始節點之配列要素的配列號碼,以及儲存有從前述 檢索開始節點起而到達前述葉節點爲止之連結目標的節點 -93- 200834356 之配列要素的配列號碼,係依序分別被保持在處理源頭之 堆疊與處理目標之堆疊中。 1 8 ·如申請專利範圍第1 7項所記載之耦合節點樹之結 合方法,其中,前述分割結合節點取得步驟,係從儲存在前述儲存於 處理源頭之堆疊中的配列號碼之前一個處的配列號碼中, 來讀取出儲存在該配列號碼之配列要素中的分支節點之辨 別位元位置,直到其成爲較前述差分位元位置爲更上位爲 止,並將在該讀取出之配列要素之後而儲存於前述處理源 頭之堆疊中的配列號碼之配列要素中所儲存之節點,作爲 分割結合節點而求取, 前述結合位置取得步驟,係從儲存在前述儲存於處理 目標堆疊中之配列號碼的前一個處之配列號碼中,來讀取 出儲存在該配列號碼之配列要素中的分支節點之辨別位元 位置,直到其成爲較前述差分位元位置爲更上位爲止,並 將在該讀取出之配列要素之後而儲存於前述處理源頭之堆 疊中的配列號碼之配列要素中所儲存之節點,作爲結合位 置而求取, 1 9 . 一種電腦可讀取之記錄媒體,其特徵爲:係爲記 錄有用以使電腦實行如申請專利範圍第1〜1 8項中之任一 項所記載的耦合節點樹之分割方法或是耦合節點樹之結合 方法的程式。 -94-
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006319407 | 2006-11-28 | ||
| JP2007169459A JP4379894B2 (ja) | 2006-11-28 | 2007-06-27 | カップルドノードツリーの分割/結合方法及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW200834356A true TW200834356A (en) | 2008-08-16 |
Family
ID=39467538
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW096143047A TW200834356A (en) | 2006-11-28 | 2007-11-14 | Splitting/connecting method for coupled node tree, and program |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US8224861B2 (zh) |
| EP (1) | EP2098965A4 (zh) |
| JP (1) | JP4379894B2 (zh) |
| CN (1) | CN101542485B (zh) |
| TW (1) | TW200834356A (zh) |
| WO (1) | WO2008065735A1 (zh) |
Families Citing this family (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4527753B2 (ja) * | 2007-07-03 | 2010-08-18 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
| EP2204744B1 (en) | 2007-09-14 | 2013-04-24 | Kousokuya, Inc. | Bit string search device, search method, and program |
| JP4502223B2 (ja) * | 2007-12-05 | 2010-07-14 | 株式会社エスグランツ | ビット列のマージソート装置、方法及びプログラム |
| JP4498409B2 (ja) * | 2007-12-28 | 2010-07-07 | 株式会社エスグランツ | データベースのインデックスキー更新方法及びプログラム |
| US7882138B1 (en) * | 2008-03-27 | 2011-02-01 | Sonoa Networks India (PVT) Ltd. | Progressive evaluation of predicate expressions in streaming XPath processor |
| CN102654842B (zh) * | 2011-03-02 | 2014-07-30 | 深圳市金蝶中间件有限公司 | 一种判断流程图中是否存在循环回路的方法和装置 |
| CN102184165B (zh) * | 2011-04-22 | 2013-01-02 | 烽火通信科技股份有限公司 | 一种节省内存的lcs算法 |
| US8818971B1 (en) * | 2012-01-30 | 2014-08-26 | Google Inc. | Processing bulk deletions in distributed databases |
| CN102750328B (zh) * | 2012-05-29 | 2018-08-10 | 北京城市网邻信息技术有限公司 | 一种数据结构的构造和存储方法 |
| US9501506B1 (en) | 2013-03-15 | 2016-11-22 | Google Inc. | Indexing system |
| US9483568B1 (en) | 2013-06-05 | 2016-11-01 | Google Inc. | Indexing system |
| JP2015075830A (ja) * | 2013-10-07 | 2015-04-20 | 富士通株式会社 | 並列処理管理プログラム、並列処理管理方法、及び、並列処理管理装置 |
| JP5959068B2 (ja) * | 2014-02-26 | 2016-08-02 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 接続関係の可視化を支援する装置及び方法 |
| CN105913848A (zh) * | 2016-04-13 | 2016-08-31 | 乐视控股(北京)有限公司 | 一种基于最小堆的路径存储方法、系统和语音识别器 |
| WO2021011914A1 (en) * | 2019-07-17 | 2021-01-21 | Google Llc | Scheduling operations on a computation graph |
| CN115374124B (zh) * | 2022-08-29 | 2023-05-12 | 钟士平 | 基于a+树数据结构存储的数据查询方法 |
| US12493600B1 (en) * | 2024-05-28 | 2025-12-09 | Workday, Inc. | Rearranging nodes for conjoined tree data structure |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5261088A (en) * | 1990-04-26 | 1993-11-09 | International Business Machines Corporation | Managing locality in space reuse in a shadow written B-tree via interior node free space list |
| JPH07210569A (ja) | 1994-01-19 | 1995-08-11 | Oki Electric Ind Co Ltd | 情報検索方法および情報検索装置 |
| US6175835B1 (en) * | 1996-07-26 | 2001-01-16 | Ori Software Development, Ltd. | Layered index with a basic unbalanced partitioned index that allows a balanced structure of blocks |
| US6266706B1 (en) * | 1997-09-15 | 2001-07-24 | Effnet Group Ab | Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams |
| GB9811574D0 (en) * | 1998-05-30 | 1998-07-29 | Ibm | Indexed file system and a method and a mechanism for accessing data records from such a system |
| US6438562B1 (en) * | 1999-08-24 | 2002-08-20 | Oracle Corporation | Parallel index maintenance |
| US6532476B1 (en) * | 1999-11-13 | 2003-03-11 | Precision Solutions, Inc. | Software based methodology for the storage and retrieval of diverse information |
| EP1107126A2 (en) * | 1999-12-08 | 2001-06-13 | Hewlett-Packard Company, A Delaware Corporation | A fast, efficient, adaptive, hybrid tree |
| US6614789B1 (en) * | 1999-12-29 | 2003-09-02 | Nasser Yazdani | Method of and apparatus for matching strings of different lengths |
| US6675163B1 (en) * | 2000-04-06 | 2004-01-06 | International Business Machines Corporation | Full match (FM) search algorithm implementation for a network processor |
| JP3601416B2 (ja) | 2000-06-13 | 2004-12-15 | 日本電気株式会社 | 情報検索方法及び装置 |
| JP3691018B2 (ja) * | 2002-01-31 | 2005-08-31 | 日本電信電話株式会社 | 最長一致検索回路および方法およびプログラムおよび記録媒体 |
| US6694323B2 (en) * | 2002-04-25 | 2004-02-17 | Sybase, Inc. | System and methodology for providing compact B-Tree |
| FI118062B (fi) * | 2003-04-30 | 2007-06-15 | Nokia Corp | Pienimuistinen päätöspuu |
| JP2006187872A (ja) | 2004-12-28 | 2006-07-20 | Canon Inc | インクジェット記録装置およびインクジェット記録方法 |
| JP2006187827A (ja) | 2005-01-05 | 2006-07-20 | Toyo Tire & Rubber Co Ltd | 研磨パッド |
| JP2006293619A (ja) | 2005-04-08 | 2006-10-26 | Toshiba Tec Corp | コンピュータ装置及びログ出力プログラム |
| JP4271227B2 (ja) | 2006-10-30 | 2009-06-03 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
| JP4271214B2 (ja) | 2006-07-07 | 2009-06-03 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
| JP4933222B2 (ja) * | 2006-11-15 | 2012-05-16 | 株式会社日立製作所 | インデックス処理方法及び計算機システム |
-
2007
- 2007-06-27 JP JP2007169459A patent/JP4379894B2/ja not_active Expired - Fee Related
- 2007-10-19 WO PCT/JP2007/001142 patent/WO2008065735A1/ja not_active Ceased
- 2007-10-19 EP EP07827921A patent/EP2098965A4/en not_active Withdrawn
- 2007-10-19 CN CN2007800440419A patent/CN101542485B/zh not_active Expired - Fee Related
- 2007-11-14 TW TW096143047A patent/TW200834356A/zh unknown
-
2009
- 2009-05-27 US US12/453,907 patent/US8224861B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP2098965A4 (en) | 2010-04-14 |
| JP2008159025A (ja) | 2008-07-10 |
| US20090234802A1 (en) | 2009-09-17 |
| WO2008065735A1 (fr) | 2008-06-05 |
| EP2098965A1 (en) | 2009-09-09 |
| CN101542485B (zh) | 2011-07-27 |
| JP4379894B2 (ja) | 2009-12-09 |
| US8224861B2 (en) | 2012-07-17 |
| CN101542485A (zh) | 2009-09-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW200834356A (en) | Splitting/connecting method for coupled node tree, and program | |
| CN101589390B (zh) | 比特序列检索装置、检索方法 | |
| EP2048584B1 (en) | Bit sequence search device, search method, and program | |
| CN101689204B (zh) | 比特序列检索方法以及程序 | |
| EP2085897B1 (en) | Bit sequence searching method and program | |
| CN101911060B (zh) | 数据库的索引关键字更新方法 | |
| JP4502223B2 (ja) | ビット列のマージソート装置、方法及びプログラム | |
| US8386526B2 (en) | Coupled node tree backup/restore apparatus, backup/restore method, and program | |
| JP2008269503A (ja) | ビット列検索方法及び検索プログラム | |
| Katriel et al. | Elementary graph algorithms in external memory | |
| TW200846955A (en) | Coupled node tree save/restore method, longest consistence/shortest consistence retrieval method, bit retrieval method and memory medium | |
| CN101911068B (zh) | 比特序列检索装置、检索方法 | |
| JP4417431B2 (ja) | カップルドノードツリーの分割/結合方法及びプログラム | |
| JP2011018296A (ja) | カップルドノードツリーのインデックスキー挿入/削除方法 | |
| JP2009134744A (ja) | ビット列検索装置 |