国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      排列的生成方法以及排列生成程序的制作方法

      文檔序號:6656925閱讀:360來源:國知局
      專利名稱:排列的生成方法以及排列生成程序的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及表示樹型數(shù)據(jù)構(gòu)造的排列的生成方法,特別是涉及表現(xiàn)樹型數(shù)據(jù)構(gòu)造,構(gòu)筑在存儲裝置上的方法。另外,本發(fā)明涉及實施這種方法的信息處理裝置。進而,本發(fā)明涉及用于執(zhí)行這種方法的程序。
      背景技術(shù)
      數(shù)據(jù)庫在各種用途中使用,而在中規(guī)模到大規(guī)模的系統(tǒng)中,使用能夠排除邏輯矛盾的關(guān)系型數(shù)據(jù)庫(RDB)成為主流。例如,RDB在飛機的坐席預訂等系統(tǒng)中被利用。這種情況下,通過指定關(guān)鍵字項目,能夠迅速地檢索(大多情況下是一件)目標,或者能夠進行預訂的確定、清除或者變更等。另外,由于各航班的坐席數(shù)充其量是幾百個,因此還能夠?qū)で筇囟ê桨嗟目兆瘮?shù)。
      已知這樣的RDB適合于表形式數(shù)據(jù)的處理,但并不適合于樹形式數(shù)據(jù)的處理(例如,參照非專利文獻1。)。
      進而,在應用中,存在與表形式的表現(xiàn)相比較樹形式的表現(xiàn)更適合的情況。特別是,近年來,作為內(nèi)部網(wǎng)或者互聯(lián)網(wǎng)的應用的數(shù)據(jù)標準,正在普及采用樹型數(shù)據(jù)構(gòu)造的XML(關(guān)于XML的詳細情況例如參照非專利文獻2。)。
      然而,對樹型數(shù)據(jù)構(gòu)造的處理,例如,對樹形式數(shù)據(jù)的檢索一般效率非常差。導致該效率差的第1理由在于由于數(shù)據(jù)分散存在于各處的節(jié)點,因此難以立即特定數(shù)據(jù)應該存在的位置。在RDB中,例如,“年齡”這樣數(shù)據(jù)只保存在某個表的“年齡”這樣的項目中。然而,在樹型數(shù)據(jù)構(gòu)造中,由于保持“年齡”這樣數(shù)據(jù)的節(jié)點分散存在于各處,因此一般如果不檢查樹型數(shù)據(jù)構(gòu)造的整體,就不能檢索該數(shù)據(jù)。
      效率差的第2理由在于為了表現(xiàn)檢索的結(jié)果而花費時間這一點。如果要表現(xiàn)在檢索中擊中的節(jié)點群,還必須屢次表現(xiàn)與其節(jié)點的子孫相當?shù)墓?jié)點,由于與RDBMS不同,數(shù)據(jù)構(gòu)造是非定型的,因此為了表現(xiàn)子孫節(jié)點需要花費時間。
      因此,為了發(fā)揮作為數(shù)據(jù)庫的主流的RDB的優(yōu)點,當前提出了在把樹型數(shù)據(jù)構(gòu)造做成數(shù)據(jù)庫時,把樹形式數(shù)據(jù)做成RDB的方法(例如,參照專利文獻1。)。在RDB中,數(shù)據(jù)被分解保持在表中。為此,為了把實際的樹形式數(shù)據(jù)做成RDB,需要把樹形式數(shù)據(jù)塞進到表中。然而,為了處理各種樹型數(shù)據(jù)構(gòu)造,必須對每種構(gòu)造單獨地把數(shù)據(jù)塞進表中來進行系統(tǒng)設(shè)計。從而,基于RDB的系統(tǒng)構(gòu)筑將是非常麻煩的作業(yè)。
      對此,還提出了把樹形式數(shù)據(jù)特別是XML數(shù)據(jù)以原來的形式構(gòu)成數(shù)據(jù)庫的方法。在樹型數(shù)據(jù)構(gòu)造的情況下,由于能夠在一個節(jié)點懸掛子孫節(jié)點,進行多樣的表現(xiàn),因此能夠大幅度減少系統(tǒng)設(shè)計的手續(xù)。從而,以能夠處理XML這樣的樹構(gòu)造的技術(shù)為核心,處理樹構(gòu)造數(shù)據(jù)的需求正在高漲。
      把XML數(shù)據(jù)以原有的形式構(gòu)成數(shù)據(jù)庫的方法的一個例子的方法是取出記入在樹構(gòu)造中的數(shù)據(jù)的拷貝,例如,如果是“年齡”這樣的項目,則分開地保持“年齡”的檢索用索引數(shù)據(jù)(例如,參照專利文獻2。)。由此,在充分地靈活運用在數(shù)據(jù)自身中能夠添加屬性這樣的XML數(shù)據(jù)優(yōu)點的同時,能夠原樣對使用標簽表現(xiàn)出的各項目的關(guān)系構(gòu)造進行存儲。
      專利文獻1特開2003-248615號公報專利文獻2特開2001-195406號公報非專利文獻1セツク株式會社“Karearea White Paper”,[online],[平成16年2月19日檢索](互聯(lián)網(wǎng)&lt;URL:http://www.sec.co.jp/products/karearea/&gt;
      非專利文獻2W3C,“Extensible Markup Language(XML)1.0(ThirdEdition)”,[online],2004年2月4日,[平成16年2月19日檢索],互聯(lián)網(wǎng)&lt;URL:http://www.w3.org/TR/2004/REC-xml-20040204/&gt;

      發(fā)明內(nèi)容
      然而,在分開地保持檢索用索引數(shù)據(jù)這樣的方法中,至少雙重保持了數(shù)據(jù),而且,需要生成索引的成本以及保存用于保持索引的數(shù)據(jù)區(qū),在保持大規(guī)模數(shù)據(jù)方面是不利的。
      實際上,即使依據(jù)這樣的機理進行實際檢索,特定節(jié)點,為了表現(xiàn)其節(jié)點也需要花費時間。另外,該機理不能在以節(jié)點之間的關(guān)系為問題的檢索(例如,對在祖先中包括“60歲”這樣的“年齡”,子孫中包括“1歲”這樣的“年齡”的樹進行抽取)中利用。
      這種現(xiàn)有技術(shù)的根本的問題點在于由于僅著眼一個個數(shù)據(jù),通過用指針把存儲了數(shù)據(jù)的節(jié)點之間連接起來,來表現(xiàn)樹型數(shù)據(jù)構(gòu)造,因此不能夠有效地跟蹤數(shù)據(jù)之間的關(guān)系,例如,父子、祖先、子孫、兄弟(シブリング)、代等的關(guān)系。換句話講,由于指針的值不是恒定的,因此僅能夠在表示數(shù)據(jù)的保存地址這樣的用途中使用,不能夠直接表現(xiàn)節(jié)點之間的關(guān)系。
      因此,本發(fā)明的目的在于提供與能夠有效地跟蹤樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)之間的關(guān)系的樹型數(shù)據(jù)構(gòu)造的表現(xiàn)以及構(gòu)筑有關(guān)的方法。
      進而,本發(fā)明的目的在于提供與能夠有效地跟蹤樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)之間的關(guān)系的樹型數(shù)據(jù)構(gòu)造的構(gòu)筑有關(guān)的信息處理裝置。
      進而,本發(fā)明的目的在于提供與能夠有效地跟蹤樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)之間的關(guān)系的樹型數(shù)據(jù)構(gòu)造的表現(xiàn)以及構(gòu)筑有關(guān)的程序。
      另外,在處理樹型數(shù)據(jù)構(gòu)造時,還產(chǎn)生移動成為追尋定位路徑的基準點、成為頂點的節(jié)點(頂點節(jié)點)的需要。因此,本發(fā)明的目的還特別在于提供使樹型數(shù)據(jù)構(gòu)造中的頂點節(jié)點移動的方法、信息處理裝置以及程序。
      本發(fā)明的目的根據(jù)以下的排列生成方法來實現(xiàn),該排列生成方法的特征是,在具備了由第1排列所表現(xiàn)的樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)的計算機中,具備以下步驟為了分別表現(xiàn)包括特定的節(jié)點以及其子孫節(jié)點的、1個以上的節(jié)點群,把該特定的節(jié)點作為頂點節(jié)點,設(shè)置保存了該節(jié)點識別符的第2排列的步驟;參照上述第1排列,使在上述第2排列中保存了節(jié)點識別符的頂點節(jié)點的每一個移動到a)用弧線直接連接該頂點節(jié)點,而且該弧線從頂點節(jié)點延伸的子節(jié)點,b)用弧線直接連接該頂點節(jié)點,而且該弧線從那里延伸到頂點節(jié)點的父節(jié)點,c)與該頂點節(jié)點同代的節(jié)點,且是從該頂點節(jié)點的父節(jié)點對于頂點節(jié)點連接弧線以前,連接有弧線的兄節(jié)點,d)與該頂點節(jié)點同代的節(jié)點,且是從該頂點節(jié)點的父節(jié)點對于頂點節(jié)點連接了弧線以后,連接有弧線的弟節(jié)點中的某一個,生成保存了移動后的新的頂點節(jié)點的節(jié)點識別符的第3排列的步驟,其中上述第1排列是向節(jié)點中提供固有的節(jié)點識別符,且節(jié)點之間的父子關(guān)系是由向作為路由節(jié)點以外的節(jié)點的、非路由節(jié)點的每一個上提供的節(jié)點識別符和與非路由節(jié)點的每一個相關(guān)聯(lián)起來的父節(jié)點的節(jié)點識別符的組構(gòu)成。
      在本發(fā)明中,在新的第3排列中,在父節(jié)點、子節(jié)點、兄節(jié)點或者弟節(jié)點的某一個上保存移動后的頂點節(jié)點的識別符。由此,能夠恰當?shù)刈兏剿鞫ㄎ宦窂降幕鶞庶c,能夠容易地進行樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)的跟蹤等。
      在優(yōu)選的實施方式中,使同代的節(jié)點比子節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,
      為了使上述頂點節(jié)點的每一個移動到子節(jié)點,而生成上述第3排列的步驟具有特定上述第1排列中保存了頂點節(jié)點的節(jié)點識別符的保存位置的步驟;以及把移動后的頂點節(jié)點的節(jié)點識別符決定為與該保存位置相對應的節(jié)點識別符的步驟。
      另外,在優(yōu)選實施方式中,使同代的節(jié)點比子節(jié)點優(yōu)先,對包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到父節(jié)點,生成上述第3排列的步驟具有特定上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置上的節(jié)點識別符的步驟;把移動后的頂點節(jié)點的節(jié)點識別符決定為保存到上述相對應的位置的節(jié)點識別符的步驟。
      在其它的實施方式中,使同代的節(jié)點比子節(jié)點優(yōu)先,向包括路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到兄節(jié)點,生成上述第3排列的步驟具有特定上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置上的第1節(jié)點識別符的步驟;特定在上述第1排列中保存在僅比上述頂點節(jié)點識別符相對應的位置的值小1的值的保存位置上的第2節(jié)點識別符的步驟;在上述第1節(jié)點識別符與上述第2節(jié)點識別符一致的情況下,把上述移動后的頂點節(jié)點識別符決定為與上述第2節(jié)點識別符的保存位置相對應的節(jié)點識別符的步驟。
      進而,在其它的實施方式中,使同代的節(jié)點比子節(jié)點優(yōu)先,對包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到弟節(jié)點,生成上述第3排列的步驟具有特定在上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置上的第1節(jié)點識別符的步驟;特定在上述第1排列中保存在僅比上述頂點節(jié)點識別符相對應的位置的值大1的值的保存位置上的第3節(jié)點識別符的步驟;在上述第1節(jié)點識別符與第3節(jié)點識別符一致的情況下,把上述移動后的頂點節(jié)點識別符決定為與上述第3節(jié)點識別符的保存位置相對應的節(jié)點識別符的步驟。
      進而,在其它的實施方式中,使子節(jié)點比同代的節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到子節(jié)點,生成上述第3排列的步驟具有特定在上述第1排列中保存了頂點節(jié)點的節(jié)點識別符的保存位置的步驟;把移動后的頂點節(jié)點的節(jié)點識別符決定為與該保存位置相對應的節(jié)點識別符的步驟。
      在其它的實施方式中,使子節(jié)點比同代的節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),
      按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到父節(jié)點,生成上述第3排列的步驟具有特定在上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置的節(jié)點識別符的步驟;把移動后的頂點節(jié)點的節(jié)點識別符決定為保存在上述相對應的位置的節(jié)點識別符的步驟。
      另外,在其它的實施方式中,使子節(jié)點比同代的節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到兄節(jié)點,生成上述第3排列的步驟具有特定在上述第1排列中保存在頂點節(jié)點的節(jié)點識別符的保存位置上的第1節(jié)點識別符的步驟;檢索在上述第1排列中保存在比頂點節(jié)點的節(jié)點識別符的保存位置的值小的值的保存位置上、并且與該第1節(jié)點識別符相同的第4節(jié)點識別符的步驟;特定上述第4節(jié)點識別符的保存位置中的最大保存位置的步驟;把上述移動后的頂點節(jié)點的節(jié)點識別符決定為與上述最大保存位置相對應的節(jié)點識別符的步驟。
      另外,在其它的實施方式中,使子節(jié)點比同代的節(jié)點優(yōu)先,向包括路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,
      為了使上述頂點節(jié)點的每一個移動到弟節(jié)點,生成上述第3排列的步驟具有特定在上述第1排列中保存在頂點節(jié)點的節(jié)點識別符的保存位置的第1節(jié)點識別符的步驟;檢索在上述第1排列中保存在比頂點節(jié)點的節(jié)點識別符的保存位置的值大的值的保存位置上、并且與該第1節(jié)點識別符相等的第5節(jié)點識別符的步驟;特定上述第5節(jié)點識別符的保存位置中的最小保存位置的步驟;把上述移動后的頂點節(jié)點的節(jié)點識別符決定為與上述最大保存位置相對應的節(jié)點識別符的步驟。
      另外,本發(fā)明的目的還通過排列生成程序?qū)崿F(xiàn),該排列生成程序是能夠由具備了由第1排列所表現(xiàn)的樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)的計算機讀取的計算機程序,且使該計算機執(zhí)行以下步驟為了分別表現(xiàn)包括特定的節(jié)點以及其子孫節(jié)點的、1個以上的節(jié)點群,把該特定的節(jié)點作為頂點節(jié)點,設(shè)置保存了該節(jié)點識別符的第2排列的步驟;參照上述第1排列,使在上述第2排列中保存了節(jié)點識別符的頂點節(jié)點的每一個移動到a)用弧線直接連接該頂點節(jié)點,而且該弧線從頂點節(jié)點延伸的子節(jié)點,b)用弧線直接連接該頂點節(jié)點,而且該弧線從那里延伸到頂點節(jié)點的父節(jié)點,c)與該頂點節(jié)點同代的節(jié)點,且是從該頂點節(jié)點的父節(jié)點對于頂點節(jié)點連接弧線以前,連接有弧線的兄節(jié)點,d)與該頂點節(jié)點同代的節(jié)點,且是從該頂點節(jié)點的父節(jié)點對于頂點節(jié)點連接了弧線以后,連接有弧線的弟節(jié)點中的某一個,生成保存了移動后的新的頂點節(jié)點的節(jié)點識別符的第3排列的步驟,其中上述第1排列是向節(jié)點中提供固有的節(jié)點識別符,且節(jié)點之間的父子關(guān)系是由向作為路由節(jié)點以外的節(jié)點的、非路由節(jié)點的每一個上提供的節(jié)點識別符和與非路由節(jié)點的每一個相關(guān)聯(lián)起來的父節(jié)點的節(jié)點識別符的組構(gòu)成。
      在優(yōu)選的實施方式中,使同代的節(jié)點比子節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到子節(jié)點,而在生成上述第3排列的步驟上使上述計算機執(zhí)行特定上述第1排列中保存了頂點節(jié)點的節(jié)點識別符的保存位置的步驟;以及把移動后的頂點節(jié)點的節(jié)點識別符決定為與該保存位置相對應的節(jié)點識別符的步驟。
      另外,在優(yōu)選的實施方式中,使同代的節(jié)點比子節(jié)點優(yōu)先,對包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到父節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置上的節(jié)點識別符的步驟;把移動后的頂點節(jié)點的節(jié)點識別符決定為保存到上述相對應的位置的節(jié)點識別符的步驟。
      在其它的實施方式中,使同代的節(jié)點比子節(jié)點優(yōu)先,向包括路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到兄節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置上的第1節(jié)點識別符的步驟;特定在上述第1排列中保存在僅比上述頂點節(jié)點識別符相對應的位置的值小1的值的保存位置上的第2節(jié)點識別符的步驟;在上述第1節(jié)點識別符與上述第2節(jié)點識別符一致的情況下,把上述移動后的頂點節(jié)點識別符決定為與上述第2節(jié)點識別符的保存位置相對應的節(jié)點識別符的步驟。
      進而,在其它的實施方式中,使同代的節(jié)點比子節(jié)點優(yōu)先,對包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到弟節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定在上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置上的第1節(jié)點識別符的步驟;特定在上述第1排列中保存在僅比上述頂點節(jié)點識別符相對應的位置的值大1的值的保存位置上的第3節(jié)點識別符的步驟;在上述第1節(jié)點識別符與第3節(jié)點識別符一致的情況下,把上述移動后的頂點節(jié)點識別符決定為與上述第3節(jié)點識別符的保存位置相對應的節(jié)點識別符的步驟。
      進而,在優(yōu)選的實施方式中,使子節(jié)點比同代的節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,
      為了使上述頂點節(jié)點的每一個移動到子節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定在上述第1排列中保存了頂點節(jié)點的節(jié)點識別符的保存位置的步驟;把移動后的頂點節(jié)點的節(jié)點識別符決定為與該保存位置相對應的節(jié)點識別符的步驟。
      另外,在優(yōu)選的實施方式中,使子節(jié)點比同代的節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到父節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定在上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置的節(jié)點識別符的步驟;把移動后的頂點節(jié)點的節(jié)點識別符決定為保存在上述相對應的位置的節(jié)點識別符的步驟。
      另外,在其它優(yōu)選的實施方式中,使子節(jié)點比同代的節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到兄節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定在上述第1排列中保存在頂點節(jié)點的節(jié)點識別符的保存位置上的第1節(jié)點識別符的步驟;檢索在上述第1排列中保存在比頂點節(jié)點的節(jié)點識別符的保存位置的值小的值的保存位置上、并且與該第1節(jié)點識別符相同的第4節(jié)點識別符的步驟;
      特定上述第4節(jié)點識別符的保存位置中的最大保存位置的步驟;把上述移動后的頂點節(jié)點的節(jié)點識別符決定為與上述最大保存位置相對應的節(jié)點識別符的步驟。
      另外,在其它優(yōu)選的實施方式中,使子節(jié)點比同代的節(jié)點優(yōu)先,向包括路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到弟節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定在上述第1排列中保存在頂點節(jié)點的節(jié)點識別符的保存位置的第1節(jié)點識別符的步驟;檢索在上述第1排列中保存在比頂點節(jié)點的節(jié)點識別符的保存位置的值大的值的保存位置上、并且與該第1節(jié)點識別符相等的第5節(jié)點識別符的步驟;特定上述第5節(jié)點識別符的保存位置中的最小保存位置的步驟;把上述移動后的頂點節(jié)點的節(jié)點識別符決定為與上述最大保存位置相對應的節(jié)點識別符的步驟。
      依據(jù)本發(fā)明,能夠提供與可以有效地跟蹤樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)之間的關(guān)系的樹型數(shù)據(jù)構(gòu)造的表現(xiàn)以及構(gòu)筑有關(guān)的方法。
      進而,依據(jù)本發(fā)明,能夠提供與可以有效地跟蹤樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)之間的關(guān)系的樹型數(shù)據(jù)構(gòu)造的構(gòu)筑有關(guān)的信息處理裝置。
      進而,依據(jù)本發(fā)明,能夠提供與可以有效地跟蹤樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)之間的關(guān)系的樹型數(shù)據(jù)構(gòu)造的表現(xiàn)以及構(gòu)筑有關(guān)的程序。
      特別是,依據(jù)本發(fā)明,能夠提供用于表現(xiàn)包括特定的節(jié)點及其子孫節(jié)點在內(nèi)的1個以上的節(jié)點群的排列的生成以及處理該排列的方法、信息處理裝置以及程序。


      圖1是處理本發(fā)明實施方式的樹型數(shù)據(jù)構(gòu)造的計算機系統(tǒng)的框圖。
      圖2A、B是作為樹形式數(shù)據(jù)的一個例子的POS數(shù)據(jù)的說明圖,圖2是視覺上表現(xiàn)出了該樹形式數(shù)據(jù)的數(shù)據(jù)構(gòu)造(即拓撲)以及數(shù)據(jù)值的例子,圖2B是以XML形式表現(xiàn)相同的樹形式數(shù)據(jù)的例子。
      圖3A~C分別是使用了弧表的樹型數(shù)據(jù)構(gòu)造的表現(xiàn)形式的一個例子的說明圖。
      圖4A~C是基于本發(fā)明一個實施例的“子→父”關(guān)系的樹型數(shù)據(jù)構(gòu)造的表現(xiàn)方法的說明圖。
      圖5是在存儲裝置上構(gòu)筑本發(fā)明一個實施例的樹型數(shù)據(jù)構(gòu)造的方法流程圖。
      圖6A~C是依據(jù)本發(fā)明的一個實施例,把ID形式的樹構(gòu)造型數(shù)據(jù)向整數(shù)連續(xù)號碼形式的樹構(gòu)造型數(shù)據(jù)進行變換的處理的說明圖。
      圖7A~C是依據(jù)本發(fā)明的另一個實施例,把ID形式的樹構(gòu)造型數(shù)據(jù)向整數(shù)連續(xù)號碼形式的樹構(gòu)造型數(shù)據(jù)進行變換的處理的說明圖。
      圖8是基于本發(fā)明一個實施例的深度優(yōu)先的節(jié)點定義處理的流程圖。
      圖9是基于根據(jù)本發(fā)明的一個實施例制成的“子→父”表現(xiàn)的父子關(guān)系的排列的說明圖。
      圖10是基于從圖6C所示的深度優(yōu)先的樹型數(shù)據(jù)構(gòu)造制成的“父→子”表現(xiàn)的父子關(guān)系的排列的說明圖。
      圖11是基于本發(fā)明一個實施例的寬度優(yōu)先的節(jié)點定義處理的流程圖。
      圖12是基于根據(jù)本發(fā)明的一個實施例制成的“子→父”表現(xiàn)的父子關(guān)系的排列的說明圖。
      圖13是基于從圖7C所示的寬度優(yōu)先的樹型數(shù)據(jù)構(gòu)造制成的“父→子”表現(xiàn)的父子關(guān)系的排列的說明圖。
      圖14A表示基于寬度優(yōu)先模式的樹型數(shù)據(jù)構(gòu)造,圖14B把該樹型數(shù)據(jù)構(gòu)造表示成基于“子→父”表現(xiàn)的父子關(guān)系的排列。
      圖15A表示頂點節(jié)點列表的例子,圖15B是表示在頂點節(jié)點列表中特定的部分樹群的例子的圖。
      圖16A表示通過檢索處理得到的頂點節(jié)點列表的例子,圖16B是表示在頂點節(jié)點列表中特定的部分樹群的例子的圖。
      圖17A表示通過總計處理得到的頂點節(jié)點列表以及總計結(jié)果的排列的例子,圖17B是表示在頂點節(jié)點列表中特定的部分樹群的例子的圖。
      圖18A表示按照節(jié)點數(shù)排序了的頂點節(jié)點列表以及相對應的節(jié)點數(shù)的排列的例子,圖18B是表示在頂點節(jié)點列表中特定的部分樹的例子的圖。
      圖19A、C分別表示成為“與”運算的對象的頂點節(jié)點列表的例子,圖19B、D是分別表示在頂點節(jié)點列表中特定的部分樹群的例子的圖。
      圖20A表示示出了“與”運算結(jié)果的頂點節(jié)點列表的例子,圖20B表示在頂點節(jié)點列表中特定的部分樹群。
      圖21A表示本實施方式的頂點節(jié)點列表,圖21B表示用箭頭示出了頂點節(jié)點的樹的例子,圖21C表示當把頂點節(jié)點向相當于孩子的節(jié)點移動了時的頂點節(jié)點列表,圖21D表示用箭頭示出了移動了的頂點節(jié)點的樹的例子。
      圖22A表示本實施方式的頂點節(jié)點列表,圖22B表示用箭頭示出了頂點節(jié)點的樹的例子,圖22C表示當把頂點節(jié)點向相當于父親的節(jié)點移動了時的頂點節(jié)點列表,圖22D表示用箭頭示出了移動了的頂點節(jié)點的樹的例子。
      圖23A表示本實施方式的頂點節(jié)點列表,圖23B表示用箭頭示出了頂點節(jié)點的樹的例子,圖23C表示當把頂點節(jié)點向相當于弟的節(jié)點移動了時的頂點節(jié)點列表,圖23D表示用箭頭示出移動了的頂點節(jié)點的樹的例子。
      圖24是表示在把頂點節(jié)點向相當于孩子的節(jié)點移動時,在計算機系統(tǒng)中所執(zhí)行的處理的流程圖。
      圖25B是表示樹的例子的圖,圖25B是說明把頂點節(jié)點向相當于孩子的節(jié)點移動的處理的圖。
      圖26是表示在把頂點節(jié)點向相當于父親的節(jié)點移動時,在計算機系統(tǒng)中所執(zhí)行的處理的流程圖。
      圖27A是表示樹的例子的圖,圖27B是說明把頂點節(jié)點向相當于父親的節(jié)點移動的處理的圖。
      圖28是表示在把頂點節(jié)點向相當于弟的節(jié)點移動時,在計算機系統(tǒng)中執(zhí)行的處理的流程圖。
      圖29A是表示樹的例子的圖,圖29B是說明把頂點節(jié)點向相當于弟的節(jié)點移動的處理的圖。
      圖30是表示在檢索相當于孩子的節(jié)點時,在計算機系統(tǒng)中執(zhí)行的處理的流程圖。
      圖31A是表示樹的例子的圖,圖31B是說明把頂點節(jié)點向相當于孩子的節(jié)點移動的處理的圖。
      圖32A是表示樹的例子的圖,圖32B說明把頂點節(jié)點向相當于父親的節(jié)點移動的處理的圖。
      圖33是表示在把頂點節(jié)點向相當于弟的節(jié)點移動時,在計算機系統(tǒng)中所執(zhí)行的處理的流程圖。
      圖34A是表示樹的例子的圖,圖34b說明把頂點節(jié)點向相當于弟的節(jié)點移動的處理的圖。
      圖35是在存儲裝置上構(gòu)筑本實施方式的樹型數(shù)據(jù)構(gòu)造以及頂點節(jié)點列表的信息處理裝置的功能框圖。
      具體實施例方式
      以下,參照

      本發(fā)明的實施方式。
      圖1是表示處理本發(fā)明實施方式的樹型數(shù)據(jù)構(gòu)造的計算機系統(tǒng)的硬件結(jié)構(gòu)的框圖。如圖1所示,該計算機系統(tǒng)10是與通常的系統(tǒng)同樣的結(jié)構(gòu),具備通過執(zhí)行程序控制系統(tǒng)整體以及各個結(jié)構(gòu)部分的CPU12、存儲工作數(shù)據(jù)等RAM(隨機訪問存儲器Random AccessMemory)14、存儲程序等ROM(只讀存儲器Read Only Memory)15、硬盤等固定存儲介質(zhì)18、用于訪問CD-ROM19的CD-ROM驅(qū)動器20、在與CD-ROM驅(qū)動器20或者外部網(wǎng)絡(luò)(未圖示)連接的外部端子之間設(shè)置的接口(I/F)22、由鍵盤或鼠標構(gòu)成的輸入裝置24、CRT顯示裝置26。CPU12、RAM14、ROM16、外部存儲介質(zhì)18、I/F22、輸入裝置24以及顯示裝置26經(jīng)由總線28相互連接。
      本實施方式的、在存儲裝置上構(gòu)筑樹型數(shù)據(jù)構(gòu)造的程序以及在存儲裝置上變換樹型數(shù)據(jù)構(gòu)造的程序可以收容在CD-ROM19中,由CD-ROM驅(qū)動器20讀取,也可以預先存儲在ROM16中。另外,還可以把一旦從CD-ROM19讀出的內(nèi)容存儲到外部存儲介質(zhì)18的規(guī)定區(qū)域中?;蛘咭部梢越?jīng)過網(wǎng)絡(luò)(未圖示)、外部端子以及I/F22從外部提供上述程序。
      另外,本發(fā)明的實施方式的信息處理裝置通過使計算機系統(tǒng)10執(zhí)行在存儲裝置上構(gòu)筑樹型數(shù)據(jù)構(gòu)造的程序以及在存儲裝置上變換樹型數(shù)據(jù)構(gòu)造的程序來實現(xiàn)。
      圖2A、B是作為樹形式數(shù)據(jù)的一個例子的POS數(shù)據(jù)的說明圖。圖2A是視覺上表現(xiàn)出該樹形式數(shù)據(jù)的數(shù)據(jù)構(gòu)造(即,拓撲)以及數(shù)據(jù)值的一個例子,圖2B是以XML形式表現(xiàn)出相同的樹形式數(shù)據(jù)的一個例子。如圖2A、B所示,樹型數(shù)據(jù)構(gòu)造由從路由節(jié)點(在本例中是POS數(shù)據(jù))開始,在各節(jié)點分支,到達葉子節(jié)點(端點)的節(jié)點與弧線的組合來表現(xiàn)。各節(jié)點的實際的值,例如店名節(jié)點的值=“法式店”的保存位置用與店名節(jié)點關(guān)聯(lián)的指針指定。
      本發(fā)明由于以樹型數(shù)據(jù)構(gòu)造的拓撲為對象,因此在以下的說明中,主要對于樹型數(shù)據(jù)構(gòu)造的拓撲進行說明。
      當前,這種樹型數(shù)據(jù)構(gòu)造通過用指針把存儲了數(shù)據(jù)的節(jié)點之間連接起來表現(xiàn)。然而,指針表現(xiàn)具有在指針值中沒有必然性的缺點。即,在某種情況下,由于特定的節(jié)點A被保存在某個地址(例如100地址),在其它的情況下,相同的節(jié)點A被保存在其它的地址(例如200地址),因此指針值不恒定,指針值本質(zhì)上只不過表現(xiàn)節(jié)點的保存地址。因此,例如在根據(jù)深度優(yōu)先的規(guī)則用指針連接節(jié)點的情況下,難以根據(jù)寬度優(yōu)先的規(guī)則用指針再次連接這些節(jié)點。
      對此,本發(fā)明者著眼于樹型數(shù)據(jù)構(gòu)造的拓撲能夠用弧表記述。所謂弧表是表示節(jié)點之間的父子關(guān)系的弧線的列表。圖3A~C是使用了弧表的樹型數(shù)據(jù)構(gòu)造的表現(xiàn)形式的一個例子的說明圖。在該圖的例子中,表示由添加了0、10、20、30、40、50、60、70、80、90、100以及110的節(jié)點識別符(ID)的12個節(jié)點構(gòu)成的樹型數(shù)據(jù)構(gòu)造。圖3A表示樹型數(shù)據(jù)構(gòu)造的整體。圖3A中,記載在圓形、心形等圖形中央的數(shù)字表示節(jié)點ID,箭頭和記載在箭頭一側(cè)的&lt;0,10&gt;的數(shù)字對表示弧線。另外,節(jié)點ID不限于文字列,也可以是數(shù)值,特別是整數(shù)。圖3B表示從父節(jié)點(From-ID)到子節(jié)點(To-ID)的弧表,圖3C表示由節(jié)點ID與節(jié)點種類的對的列表構(gòu)成的節(jié)點列表。另外,由于只是表現(xiàn)樹型數(shù)據(jù)構(gòu)造的目的,因此也可以沒有節(jié)點列表。原理上通過使用這樣的弧表,能夠與指針無關(guān)地直接記述節(jié)點之間的關(guān)系。
      在圖3A~C的例子中,根據(jù)使子節(jié)點與父節(jié)點相對應的“父→子”關(guān)系記述弧表。因此,在一個父節(jié)點例如路由節(jié)點0中存在3個子節(jié)點10、60以及80,因此在弧表的From-ID中相同節(jié)點ID的0出現(xiàn)3次。即,由于即使特定父節(jié)點也不能夠特定子節(jié)點,因此弧表由要素From-ID的排列和要素To-ID的排列構(gòu)成。在使用弧表的情況下,某個節(jié)點出現(xiàn)在From-ID的排列和To-ID的排列的雙方排列中。
      對此,父子關(guān)系還能夠由“子→父”關(guān)系來表現(xiàn)。這種情況下,節(jié)點之間的父子關(guān)系由作為路由節(jié)點以外節(jié)點的非路由節(jié)點的每一個與相關(guān)聯(lián)起來的父節(jié)點的、組的排列來表現(xiàn)。在由該“子→父”關(guān)系表現(xiàn)父子節(jié)點的情況下,有在“父→子”關(guān)系的情況下不能夠得到的重要性質(zhì)。即,在一個子節(jié)點中由于一定與唯一的父節(jié)點相對應,因此通過特定子節(jié)點,能夠立即特定與該子節(jié)點相對應的唯一的父節(jié)點。即,弧表實際上可以只準備要素To-ID的排列。作為其結(jié)果,減小用于存儲弧表的存儲容量。該存儲容量的減少由于具有能夠減少對于存儲器的訪問次數(shù)的效果,其結(jié)果能夠?qū)崿F(xiàn)處理的高速化。
      圖4A~C是基于本發(fā)明一個實施例的“子→父”關(guān)系的樹型數(shù)據(jù)構(gòu)造的表現(xiàn)方法的說明圖。圖4A是樹總體的說明圖,圖4B是基于“子→父”關(guān)系的弧表。圖4B的弧表由于包括針對路由節(jié)點的父節(jié)點的存儲區(qū)域,因此作為路由節(jié)點的父節(jié)點,方便地設(shè)定“-”。但是,由于不存在與路由節(jié)點相對應的父節(jié)點,因此如圖4C所示,也可以從基于“子→父”關(guān)系的弧表去除針對路由節(jié)點的父節(jié)點的存儲區(qū)域。這樣在本發(fā)明的一個實施例中,對于作為路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個,通過使非路由節(jié)點的父節(jié)點相關(guān)聯(lián)起來,表現(xiàn)節(jié)點之間的父子關(guān)系。而且,通過從“子→父”表現(xiàn)出的子的節(jié)點搜索父的節(jié)點的列表,能夠表現(xiàn)樹的拓撲。
      基于這樣的“子→父”關(guān)系的樹型數(shù)據(jù)構(gòu)造依據(jù)本發(fā)明的一個實施例,如圖5所示,通過使圖1所示的計算機系統(tǒng)10執(zhí)行向包括路由節(jié)點的節(jié)點上提供固有的節(jié)點識別符的節(jié)點定義步驟501、使被提供到作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的節(jié)點識別符與被提供到上述非路由節(jié)點的每一個父節(jié)點上的節(jié)點識別符相關(guān)聯(lián)的父子關(guān)系定義步驟502,并構(gòu)筑在RAM14上。這樣,最初根據(jù)字符串、浮點小數(shù)、整數(shù)等任意的識別信息向節(jié)點提供節(jié)點識別符,接著,通過根據(jù)“子→父”表現(xiàn)定義父子關(guān)系,從而通過從子節(jié)點的節(jié)點識別符引進(檢查)父節(jié)點的節(jié)點識別符,能夠表現(xiàn)樹的拓撲。
      依據(jù)優(yōu)選的一個實施例,節(jié)點定義步驟使用數(shù)值作為節(jié)點識別符,更優(yōu)選的是使用連續(xù)的整數(shù),最優(yōu)選的是使用從0或者1開始的整數(shù)連續(xù)號碼。由此,由于能夠從節(jié)點識別符簡單地取得保存有與其節(jié)點相對應的父節(jié)點的節(jié)點識別符的地址,因此能夠高速地進行從子節(jié)點的節(jié)點識別符引進父節(jié)點的節(jié)點識別符的處理。
      在樹型數(shù)據(jù)構(gòu)造的節(jié)點上作為節(jié)點識別符提供帶順序的號碼來表現(xiàn)節(jié)點之間的父子關(guān)系的情況下,具有通過按照號碼的提供順序確定規(guī)則,從而容易處理其以后的樹型數(shù)據(jù)構(gòu)造的優(yōu)點。依據(jù)本發(fā)明,作為該號碼的提供順序的規(guī)則,利用使子節(jié)點比同代的節(jié)點優(yōu)先的深度優(yōu)先模式、使同代的節(jié)點比子節(jié)點優(yōu)先的寬度優(yōu)先模式。
      圖6A~C是根據(jù)本發(fā)明的一個實施例,把ID形式的樹構(gòu)造型數(shù)據(jù)向整數(shù)連續(xù)號碼形式的樹構(gòu)造型數(shù)據(jù)變換的處理的說明圖。圖6A中表示向各節(jié)點中提供了ID號碼的樹構(gòu)造型數(shù)據(jù),圖6B中表示變換規(guī)則,圖6C中表示對各節(jié)點上提供了整數(shù)連續(xù)號碼的樹構(gòu)造型數(shù)據(jù)。本例的變換規(guī)則是按照深度優(yōu)先提供連續(xù)號碼的規(guī)則,具體地講,在存在多個子節(jié)點的情況下,對長子(最上面的兄)節(jié)點提供最小號碼,對末子(最下面的弟)節(jié)點提供大的號碼,而且,使子節(jié)點比兄弟節(jié)點優(yōu)先地提供號碼。在本例中,按照升序進行號碼添加,而也可以按照降序進行號碼添加。
      另外,圖7A~C是依據(jù)本發(fā)明的其它一個實施例,把ID形式的樹構(gòu)造型數(shù)據(jù)向整數(shù)連續(xù)號碼形式的樹構(gòu)造型數(shù)據(jù)進行變換的處理的說明圖。圖7A中表示向各節(jié)點添加了ID號碼的樹構(gòu)造型數(shù)據(jù),圖7B中表示變換規(guī)則,圖7C中表示向各節(jié)點提供了整數(shù)連續(xù)號碼的樹構(gòu)造型數(shù)據(jù)。本例的變換規(guī)則是以寬度優(yōu)先來提供連續(xù)號碼的規(guī)則,具體地講,在存在多個子節(jié)點的情況下,對長子(最上面的兄)節(jié)點提供最小號碼,對末子(最下面的弟)節(jié)點提供大的號碼,而且,使兄弟節(jié)點比子節(jié)點優(yōu)先地提供號碼。在本例中,按照升序進行號碼添加,而也可以按照降序進行號碼添加。
      當這樣使用號碼作為節(jié)點識別符,則能夠從節(jié)點號碼直接,即按照O(1)等級,引進保存了與其節(jié)點有關(guān)的保存值的地址。另外,通過用“子→父”表現(xiàn)父子關(guān)系,能夠從子節(jié)點直接即、按照O(1)的等級引進父節(jié)點。
      依據(jù)本發(fā)明的一個實施例,圖6C所示那樣的基于深度優(yōu)先的樹型數(shù)據(jù)構(gòu)造通過使圖1所示的計算機系統(tǒng)10執(zhí)行使子節(jié)點比同代的節(jié)點優(yōu)先,對包含路由節(jié)點的節(jié)點提供固有的連續(xù)整數(shù)的節(jié)點定義步驟;把按照被提供給作為路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列被提供給非路由節(jié)點的每一個父節(jié)點上的整數(shù)所形成的排列保存到上述存儲裝置中的父子關(guān)系定義步驟,從而被構(gòu)筑到存儲裝置上。由此,節(jié)點按照深度優(yōu)先提供連續(xù)整數(shù),節(jié)點之間的父子關(guān)系通過“子→父”關(guān)系的排列來表現(xiàn)。
      圖8是本發(fā)明一個實施例的基于深度優(yōu)先的節(jié)點定義處理的流程圖。該節(jié)點定義處理通過使計算機系統(tǒng)10執(zhí)行最初對路由節(jié)點提供號碼的步驟801;在已經(jīng)提供了號碼的某個節(jié)點上存在唯一的子節(jié)點的情況下,對該子節(jié)點提供已經(jīng)在該某節(jié)點上所提供的上述號碼的下一個號碼的步驟802;在已經(jīng)提供了號碼的某個節(jié)點上存在多個子節(jié)點的情況下,按照該多個子節(jié)點之間的兄弟關(guān)系,對從最上面的兄節(jié)點到最下面的弟節(jié)點提供號碼,使得弟節(jié)點是在對其緊上方的兄節(jié)點的所有子孫節(jié)點提供了號碼以后,提供下一個號碼的步驟803。由此,按照深度優(yōu)先模式在從同一個父節(jié)點派生出的多個子節(jié)點之間定義兄弟關(guān)系。
      圖9是基于依據(jù)本發(fā)明的一個實施例,從圖6C所示的深度優(yōu)先的樹型數(shù)據(jù)構(gòu)造制成的“子→父”表現(xiàn)的父子關(guān)系的排列的說明圖。如該圖中作為子樹1或者子樹2表示的那樣,如果根據(jù)“子→父”關(guān)系排列表現(xiàn)按照深度優(yōu)先提供了連續(xù)號碼的節(jié)點的父子關(guān)系,則可以得到某個節(jié)點的子孫節(jié)點出現(xiàn)在連續(xù)區(qū)域中這樣的優(yōu)異性質(zhì)。
      在本發(fā)明的一個實施例中,通過利用深度優(yōu)先模式的優(yōu)異性質(zhì),從上述排列中抽取保存了被提供給某個節(jié)點上的整數(shù)以上的值的連續(xù)區(qū)域,從而特定上述某個節(jié)點的所有子孫節(jié)點。由此,作為上述排列內(nèi)的連續(xù)塊能夠獲得表示某個節(jié)點的子孫節(jié)點的節(jié)點群。例如,如果把連續(xù)塊的尺寸記為m,則用于特定某個節(jié)點的所有子孫節(jié)點的處理速度變成O(m)等級。
      如已經(jīng)說明過的那樣,節(jié)點之間的父子關(guān)系除去“子→父”關(guān)系的排列以外,還能夠由“父→子”關(guān)系的排列來表現(xiàn)。圖10是基于從圖6C所示的深度優(yōu)先的樹型數(shù)據(jù)構(gòu)造制成的“父→子”表現(xiàn)的父子關(guān)系的排列的說明圖。由于對于一個父節(jié)點可以存在多個子節(jié)點,因此父子關(guān)系的排列由用于表示保存針對各節(jié)點的子節(jié)點的號碼的區(qū)域的排列Aggr和保存子節(jié)點的號碼的排列P→C這2個排列構(gòu)成。例如,從排列Aggr的起始的第2個要素Aggr[1]的值是“3”,該值表現(xiàn)針對節(jié)點[1]的子節(jié)點的號碼被保存在排列P→C的要素P→C[3]以后。由此可知,節(jié)點
      ,即針對路由節(jié)點的子節(jié)點是從排列P→C的起始的3個元素,P→C
      的1,P→C[1]的6以及P→C[2]的8。
      說明基于“父→子”表現(xiàn)的父子關(guān)系的排列的求取方法。
      (1)在節(jié)點的號碼與排列P→C的最大腳注(=11)一致的情況下,不存在屬于該節(jié)點的節(jié)點。從而,不繼續(xù)進行處理。
      (2)從在該圖中用粗體字表現(xiàn)的父節(jié)點的號碼求Aggr值。該Aggr值表示排列P→C的開始點。
      (3)求與用粗體字表現(xiàn)的父節(jié)點號碼+1相對應的Aggr值。該Aggr值-1是排列P→C的結(jié)束點。
      例如,節(jié)點0的子節(jié)點的開始點是Aggr
      ,即是0,結(jié)束點是Aggr[1]-1,即3-1=2。從而,節(jié)點0的子節(jié)點是排列P→C的第0~2的要素,即1、6以及8。
      或者,基于“父→子”表現(xiàn)的父子關(guān)系還能夠更單純地根據(jù)父節(jié)點號碼的排列和相對應的子節(jié)點號碼的排列這2個排列表現(xiàn)。然而,由于為了利用該排列發(fā)覺父子關(guān)系,必須檢索父節(jié)點的號碼,即由于需要log(n)的訪問時間,因此效率差。
      依據(jù)本發(fā)明的一個實施例,基于圖7C所示那樣的寬度優(yōu)先的樹型數(shù)據(jù)構(gòu)造通過使圖1所示的計算機系統(tǒng)10執(zhí)行使同代的節(jié)點比子節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點提供固有的連續(xù)整數(shù)的節(jié)點定義步驟;
      按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,把通過排列被提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成的排列保存到上述存儲裝置中的父子關(guān)系定義步驟,從而被構(gòu)筑到存儲裝置上。由此,節(jié)點以寬度優(yōu)先模式提供連續(xù)整數(shù),節(jié)點之間的父子關(guān)系由“子→父”關(guān)系的排列來表現(xiàn)。
      圖11是基于本發(fā)明一個實施例的寬度優(yōu)先的節(jié)點定義處理的流程圖。該節(jié)點定義處理是使計算機系統(tǒng)10執(zhí)行計算各節(jié)點是從路由節(jié)點起第幾代節(jié)點以及包含在各代中的節(jié)點數(shù)的步驟1101;最初向上述路由節(jié)點提供號碼的步驟1102;如果對某個代中包含的所有節(jié)點提供了號碼,則直到在該某個代的下一代中不存在節(jié)點為止,對于包含在該下一代中的所有節(jié)點,在父節(jié)點不同的情況下,按照對該父節(jié)點上提供號碼的順序?qū)υ摴?jié)點提供號碼,在該父節(jié)點是相同的情況下,在從該父節(jié)點派生出的多個子節(jié)點之間定義兄弟關(guān)系,對從最上面的兄節(jié)點到最下面的弟節(jié)點按順序提供從提供給緊接之前的號碼的下一個號碼開始連續(xù)變化的固有整數(shù)的步驟1103。由此,以寬度優(yōu)先模式在從相同父節(jié)點派生出的多個子節(jié)點之間定義兄弟關(guān)系。
      圖12是根據(jù)本發(fā)明的一個實施例,基于從圖7C所示的寬度優(yōu)先的樹型數(shù)據(jù)構(gòu)造制成的“子→父”表現(xiàn)的父子關(guān)系的排列的說明圖。如該圖所示,如果根據(jù)“子→父”關(guān)系排列表現(xiàn)按照寬度優(yōu)先提供了連續(xù)號碼的節(jié)點的父子關(guān)系,則可以得到某個節(jié)點的子節(jié)點在連續(xù)區(qū)域中出現(xiàn)的優(yōu)異性質(zhì)。這是由于如果根據(jù)“子→父”關(guān)系排列表現(xiàn)以寬度優(yōu)先模式提供了連續(xù)號碼的節(jié)點的父子關(guān)系,則在父節(jié)點上所提供的號碼在上述排列中按照帶順序(升序或者降序)方式出現(xiàn)。
      從而,在本發(fā)明的一個實施例中,通過利用寬度優(yōu)先模式的優(yōu)異性質(zhì),從上述排列抽取保存了與提供給某個節(jié)點上的整數(shù)相同值的連續(xù)區(qū)域,從而特定上述某個節(jié)點的所有子節(jié)點。由此,例如能夠使用二分搜索等方法檢索某個節(jié)點的子節(jié)點,即,能夠以O(shè)(log(n))等級進行檢索。
      如已經(jīng)說明過的那樣,節(jié)點之間的父子關(guān)系除去“子→父”關(guān)系的排列以外,還能夠由“父→子”關(guān)系的排列來表現(xiàn)。圖13是基于從圖7C所示的寬度優(yōu)先的樹型數(shù)據(jù)構(gòu)造制成的“父→子”表現(xiàn)的父子關(guān)系的排列的說明圖。由于對于圖13的一個父節(jié)點存在多個子節(jié)點,因此父子關(guān)系的排列由用于表示保存針對各節(jié)點的子節(jié)點的號碼的區(qū)域的排列Aggr和保存有子節(jié)點的號碼的排列P→C這2個排列構(gòu)成。例如,從排列Aggr起始的第2個元素Aggr[1]的值是“3”,該值表示針對節(jié)點[1]的子節(jié)點的號碼存儲在排列P→C的元素P→C[3]以后。由此可知,節(jié)點
      即針對路由節(jié)點的子節(jié)點是從排列P→C起始的3個元素,P→C
      的1,P→C[1]的2以及P→C[2]的3。
      說明基于該“父→子”表現(xiàn)的父子關(guān)系的排列的求取方法。
      (1)在節(jié)點的號碼與排列P→C的最大腳注(=11)一致的情況下,不存在屬于該節(jié)點的子節(jié)點。從而,不繼續(xù)處理。
      (2)從在該圖中用粗體字表現(xiàn)的父節(jié)點號碼求Aggr值。該Aggr值表示排列P→C的開始點。
      (3)求與用粗體字表現(xiàn)的父節(jié)點號碼+1相對應的Aggr值。該Aggr值-1是排列P→C的結(jié)束點。
      例如,節(jié)點0的子節(jié)點的開始點是Aggr
      即0,結(jié)束點是Aggr[1]-1即3-1=2。從而,節(jié)點0的子節(jié)點是排列P→C的第0~2個要素,即,1、2以及3。
      在上述的樹中,考慮用最接近路由節(jié)點的節(jié)點的值表現(xiàn)該節(jié)點以及從其節(jié)點分支到達葉子節(jié)點(端點)的所有節(jié)點。這里,把某個節(jié)點以及從其節(jié)點分支到達葉子節(jié)點的節(jié)點群稱為部分樹。另外,把最接近上述節(jié)點(路由節(jié)點)的節(jié)點稱為頂點節(jié)點。
      圖14A表示上述的基于寬度優(yōu)先模式的樹型數(shù)據(jù)構(gòu)造,圖14B是把該樹型數(shù)據(jù)構(gòu)造表示成基于“子→父”表現(xiàn)的父子關(guān)系的排列圖。例如,頂點節(jié)點[4]包括節(jié)點識別符{4,8,9},頂點節(jié)點[6]包括節(jié)點識別符{6},另外,頂點節(jié)點[3]包括節(jié)點識別符{3,7,10,11}。把這樣的由多個頂點節(jié)點構(gòu)成的排列稱為頂點節(jié)點列表。根據(jù)頂點節(jié)點列表能夠指定多個部分樹,把被指定的多個部分樹稱為部分樹群。
      以下,把頂點節(jié)點列表表示為[a,b,......]。這里,“a”、“b”、......是與頂點節(jié)點相對應的節(jié)點識別符??紤]把構(gòu)成頂點節(jié)點列表的頂點節(jié)點的每一個展開,求在以該頂點節(jié)點作為頂點的部分樹中所包含的所有節(jié)點的節(jié)點識別符。在所求出的節(jié)點識別符的列表中,在僅存在一個某個節(jié)點識別符的情況下,即,沒有重復出現(xiàn)節(jié)點識別符的情況下,把該部分樹群稱為“正規(guī)部分樹群”。把不是這樣的部分樹群稱為“非正規(guī)部分樹群”。
      無論是正規(guī)部分樹群還是非正規(guī)部分樹群,都能夠利用頂點節(jié)點列表特定由頂點節(jié)點及其子孫節(jié)點構(gòu)成的部分樹群。例如,如圖15A所示,由頂點節(jié)點列表[4、6、3]特定圖15B所示的部分樹群(部分樹{4,8,9},{6},{3、7、10、11})。
      根據(jù)頂點節(jié)點列表所特定的部分樹群能夠作為檢索、總計、排序、集合運算的對象。
      例如,在圖15A、B的例子中,如果對包括“心形”的節(jié)點的部分樹進行檢索,則可以得到圖16B所示那樣的部分樹群。圖16A是表示該部分樹群的頂點節(jié)點列表。
      另外,如果總計屬于各部分樹的節(jié)點數(shù),則成為圖17B所示。在圖17A中,排列1701是頂點節(jié)點列表,排列1702是表示屬于根據(jù)各頂點節(jié)點所特定的部分樹的節(jié)點數(shù)的排列。
      例如,作為排序,能夠考慮基于屬于各部分樹的節(jié)點數(shù)的排序。圖18A中,排列1801是被排序了的頂點節(jié)點列表,排列1802是表示屬于由頂點節(jié)點列表所特定的部分樹的節(jié)點數(shù)的排列。另外,圖18B表示部分樹隨著節(jié)點數(shù)排序了的狀態(tài)。
      進而,作為多個部分樹群之間的集合運算,說明“與”。在圖14A、B中表示的樹中,考慮圖19B表示的部分樹群(圖19A中表示相對應的頂點節(jié)點列表)與圖19D表示的部分樹群(圖19C中表示相對應的頂點節(jié)點列表)之間的“與”。
      如果把圖19B中的、用節(jié)點識別符[4]的頂點節(jié)點特定的部分樹1901與圖19D中的、用節(jié)點識別符[1]的頂點節(jié)點識別符特定的部分樹1911進行比較,則部分樹1901包含在部分樹1911中。在圖19D表示的部分樹群中不存在與圖19B中的部分樹1902具有包含關(guān)系的部分樹。另外,如果把圖19B中的、用節(jié)點識別符[3]的頂點節(jié)點特定的部分樹1903與圖19D中的用節(jié)點識別符[7]特定的部分樹1913進行比較,則部分樹1913包含在部分樹1903中。其結(jié)果,表示“與”運算結(jié)果的頂點節(jié)點列表如圖20A所示,成為[4、7]。圖20B是與“與”運算結(jié)果相對應的部分樹群。
      如能夠從圖16A、B~圖20A、B理解的那樣,根據(jù)頂點節(jié)點列表(在總計中,除去該列表以外,還有與頂點節(jié)點列表相同尺寸的保存總計結(jié)果(節(jié)點數(shù))的排列),能夠表現(xiàn)各個處理、運算的結(jié)果。
      在表形式的數(shù)據(jù)中,項目規(guī)則地排列著,因此能夠簡單地執(zhí)行指定成為顯示、編輯對象的單元(或者列或行)的操作。另一方面,樹的數(shù)據(jù)由于節(jié)點未規(guī)則地排列著,因此必須進行特定成為顯示、編輯、總計對象的節(jié)點(相當于表形式數(shù)據(jù)的“單元”)群的操作。根據(jù)上述的頂點節(jié)點,能夠指定進行這種顯示、編輯、總計等操作的對象的節(jié)點群。有時也把指定成為顯示、編輯、總計等操作對象的節(jié)點群的節(jié)點稱為上下文節(jié)點。從而,在本說明書中,頂點節(jié)點具有與上下文節(jié)點相同的功能。
      上述的檢索、總計、排序、集合運算是不出現(xiàn)與頂點列表中的值不同的新值的操作。然而,在以部分樹群為對象的操作中,經(jīng)常發(fā)生要求移動樹的拓撲的情況。
      例如,考慮以父親作為頂點節(jié)點,表現(xiàn)家族結(jié)構(gòu)的樹?,F(xiàn)在,頂點節(jié)點位于父節(jié)點上,而在希望得到所有孩子的一覽的情況下,考慮把頂點節(jié)點從父親移動到孩子的情況。另外,即使是正規(guī)部分樹群的頂點節(jié)點列表,移動了頂點節(jié)點以后的頂點節(jié)點列表不限于成為正規(guī)部分樹群,有時也成為非正規(guī)部分樹群。
      以下,說明移動頂點節(jié)點的例子。在圖21B所示的樹中,如圖21A的頂點節(jié)點列表所示那樣,考慮當節(jié)點識別符“1”、“2”以及“3”的節(jié)點分別是頂點節(jié)點時,把該頂點節(jié)點移動到相當于[孩子]的節(jié)點的情況。另外,在圖21B、D中,標注了箭頭的節(jié)點表示是頂點節(jié)點。
      這種情況下,如圖22D所示,節(jié)點識別符“1”的頂點節(jié)點移動到節(jié)點識別符“4”以及“5”的節(jié)點。另外,節(jié)點識別符“2”的頂點節(jié)點移動到節(jié)點識別符“6”的節(jié)點的同時,節(jié)點識別符“3”的頂點節(jié)點移動到節(jié)點識別符“7”的節(jié)點。其結(jié)果,表示移動后的頂點節(jié)點的頂點節(jié)點列表如圖21C所示,成為[4、5、6、7]。
      如圖21D所示,考慮節(jié)點識別符“4””、“5”、“6”以及“7”的節(jié)點是頂點節(jié)點時,把頂點節(jié)點移動到相當于“父親”的節(jié)點的情況。節(jié)點識別符“4”的頂點節(jié)點以及節(jié)點識別符“5”的頂點節(jié)點分別移動到節(jié)點識別符“1”的節(jié)點。另外,節(jié)點識別符“6”的頂點節(jié)點移動到節(jié)點識別符“2”的節(jié)點,節(jié)點識別符“7”的頂點節(jié)點移動到節(jié)點識別符“3”的節(jié)點。其結(jié)果,表示移動后的頂點節(jié)點的頂點節(jié)點列表成為[1、1、2、3]。
      其次,如圖23B所示,考慮當節(jié)點識別符“1”、“2”、“3”的節(jié)點是頂點節(jié)點時,把頂點節(jié)點移動到同代而且緊接其下的“弟”的節(jié)點,即,如果按照本發(fā)明的節(jié)點識別符的添加規(guī)則,則移動到同代而且父節(jié)點是相同的節(jié)點中具有最接近的節(jié)點識別符的節(jié)點的情況(參照圖23B的虛線箭頭)。這里,“弟”的節(jié)點是與頂點節(jié)點同代的節(jié)點,考慮為在從該頂點節(jié)點的父節(jié)點對頂點節(jié)點連接了弧線以后,如連接有弧線那樣的節(jié)點。另外,作為“兄”的節(jié)點,是與該頂點節(jié)點同代的節(jié)點,考慮為在從該頂點節(jié)點的父節(jié)點對頂點節(jié)點連接弧線以前,連接有弧線的節(jié)點。
      如圖23B、23D所示,節(jié)點識別符“1”的頂點節(jié)點移動到節(jié)點識別符“2”的節(jié)點,節(jié)點識別符“2”的頂點節(jié)點移動到節(jié)點識別符“3”的節(jié)點。另一方面,由于節(jié)點識別符“3”的頂點節(jié)點不存在“弟”的節(jié)點因此消失。從而,如圖23C所示,表示移動后的頂點節(jié)點的頂點節(jié)點列表成為[2、3]。
      以下,說明在本發(fā)明的實施方式中,使頂點節(jié)點移動時執(zhí)行的處理。首先,說明利用了基于依據(jù)寬度優(yōu)先模式的數(shù)型數(shù)據(jù)構(gòu)造作出的[子→父]表現(xiàn)的排列(C-P排列)時的頂點節(jié)點的移動。
      圖24是表示把頂點節(jié)點移動到相當于孩子的節(jié)點時,在計算機系統(tǒng)10中執(zhí)行的處理的流程圖。如圖24所示,計算機系統(tǒng)10參照保存了頂點節(jié)點的節(jié)點識別符的頂點節(jié)點列表的值(步驟2401),在C-P排列中,檢索與該頂點節(jié)點列表的值(節(jié)點識別符)相同的值(步驟2402)。接著計算機系統(tǒng)10把在C-P排列中具有與頂點節(jié)點的節(jié)點識別符相同值的節(jié)點的節(jié)點識別符保存在新的頂點節(jié)點列表中(步驟2403)。通過對所有的頂點節(jié)點列表中的值執(zhí)行步驟2401~2403的處理(參照步驟2404),在新的頂點節(jié)點列表中,保存移動到相當于孩子的節(jié)點的頂點節(jié)點的節(jié)點識別符。
      在圖25A的例子中,考慮頂點節(jié)點列表是[1、2、3]。如果著眼于節(jié)點識別符“1”的頂點節(jié)點(參照箭頭),則檢索C-P排列的結(jié)果,可知關(guān)于節(jié)點識別符“4”以及“5”,C-P排列的值與頂點節(jié)點列表中的值“1”相同(參照圖25)。因此,在新的頂點節(jié)點列表中,保存值“4”以及“5”。另外,在寬度優(yōu)先模式中的C-P排列中由于值是升序,因此容易進行步驟2402的檢索。關(guān)于其它的頂點節(jié)點列表中的值“2”、“3”也執(zhí)行相同處理的結(jié)果,能夠得到新的頂點節(jié)點列表[4、5、6、7]。
      圖26是表示在把頂點節(jié)點移動到相當于父親的節(jié)點(父節(jié)點)時,在計算機系統(tǒng)10中執(zhí)行的處理的流程圖。如圖26所示,計算機系統(tǒng)10參照頂點節(jié)點列表的值(步驟2601),取得該頂點節(jié)點列表的值表示的C-P排列的值(步驟2602)。計算機系統(tǒng)10把所取得的值保存在新的頂點節(jié)點列表中(步驟2603)。通過對于所有的頂點節(jié)點列表中的值執(zhí)行步驟2601~2603的處理(參照步驟2604),在新的頂點節(jié)點列表中保存移動到相當于父親的節(jié)點的頂點節(jié)點的節(jié)點識別符。
      圖27A中,考慮頂點節(jié)點列表是[4、5、6、7]。如果著眼于節(jié)點識別符“4”的頂點節(jié)點(參照箭頭),則由于與節(jié)點識別符“4”相對應的C-P排列的值是“1”,因此該值被保存在新的頂點節(jié)點列表中。同樣,關(guān)于在頂點節(jié)點列表中所存儲的其它節(jié)點的節(jié)點識別符“5”、“6”以及“7”,其相應的C-P排列的值分別成為“1”、“2”、“3”。從而,新的頂點節(jié)點列表成為[1、1、2、3]。
      圖28是表示當把頂點節(jié)點移動到相當于弟的節(jié)點(弟節(jié)點)時,在計算機系統(tǒng)10中執(zhí)行的處理的流程圖。如圖28所示,計算機系統(tǒng)10參照頂點節(jié)點列表的值(步驟2801),取得表示該頂點節(jié)點列表的值的C-P排列的值(節(jié)點識別符)(步驟2808)。接著,計算機系統(tǒng)10取得該頂點節(jié)點的下一個值(在本實施方式中,在原來的值上加“1”的值)表示的C-P排列的值(節(jié)點識別符)(步驟2803)。
      接著,計算機系統(tǒng)10把所取得的兩個值進行比較,在兩者一致的情況下(步驟2804中是Yes),把上述下一個值(節(jié)點識別符)保存在新的頂點節(jié)點列表中(步驟2805)。另一方面,在兩者不一致的情況下,如果成為處理對象的頂點節(jié)點移動,則判斷為消失。
      計算機系統(tǒng)10通過對于所有的頂點節(jié)點列表中的值執(zhí)行步驟2601~2603的處理(參照步驟2806),在新的頂點節(jié)點列表中,保存移動到相當于弟的節(jié)點的頂點節(jié)點的節(jié)點識別符。
      在圖29A中,考慮頂點節(jié)點列表是[4、5、6、7]。如果著眼于節(jié)點識別符“4”的頂點節(jié)點(參照箭頭),則與節(jié)點識別符“4”相對應的C-P排列的值是“1”,與節(jié)點識別符“5”相對應的C-P排列的值也是“1”。從而,由于兩者一致,因此節(jié)點識別符“5”保存在新的頂點節(jié)點列表中。關(guān)于節(jié)點識別符“5”、“6”以及“7”,由于與其自身相對應的C-P排列的值與在自身的值上加“1”的值相對應的C-P排列的值分別不同,因此頂點節(jié)點消失。從而,新的頂點節(jié)點列表成為[5]。
      另外,在使頂點節(jié)點移動到相當于“兄”的節(jié)點的情況下,可以把頂點節(jié)點列表中的節(jié)點識別符表示的C-P排列的值、與該節(jié)點識別符的一個以前的節(jié)點識別符(即,值是“-1”那樣的節(jié)點識別符)表示的C-P排列的值進行比較。
      以下,在本發(fā)明的實施方式中,說明使頂點節(jié)點移動時執(zhí)行的處理。首先,說明利用了基于從依據(jù)深度優(yōu)先模式的樹型數(shù)據(jù)構(gòu)造作出的“子→父”表現(xiàn)的排列(C-P排列)情況下的頂點節(jié)點的移動。
      在深度優(yōu)先模式下,在把頂點節(jié)點移動到相當于孩子的節(jié)點時,在計算機系統(tǒng)10中執(zhí)行的處理與圖24所示的相同。另外,在深度優(yōu)先模式下的C-P排列中值不是升序。而相當于孩子的節(jié)點出現(xiàn)在從頂點節(jié)點列表中的節(jié)點識別符的下一個(在本實施方式中是在值上加“1”的)節(jié)點識別符起,節(jié)點識別符表示的C-P排列的值比頂點節(jié)點列表的值小的那樣的節(jié)點識別符的一個之前(在本實施方式中,是比這樣的節(jié)點識別符僅小“1”的節(jié)點識別符)的節(jié)點的范圍。
      從而,在檢索相當于孩子的節(jié)點時,如圖30所示,計算機系統(tǒng)10以頂點節(jié)點列表中的節(jié)點為基準節(jié)點,在該基準節(jié)點的下一個位置(即,在基準節(jié)點的節(jié)點識別符上加“1”的節(jié)點識別符表示的位置)中配置檢索用指針(步驟3001),特定檢索用指針表示的C-P排列的值(步驟3002)。接著,判斷所特定的值是否與基準節(jié)點的節(jié)點識別符相同(步驟3003)。在步驟3003中判斷為Yes的情況下,計算機系統(tǒng)10把檢索用指針所處的節(jié)點識別符保存在新的頂點節(jié)點列表中(步驟3004)。然后,檢索用指針前進一個(步驟3005)。
      另一方面,在步驟3003中判斷為No的情況下,判斷C-P排列的值是否大于等于基準節(jié)點的節(jié)點識別符(步驟3006)。在步驟3006中判斷為Yes的情況下,檢索用指針所處的節(jié)點識別符的節(jié)點由于是基準節(jié)點的子孫,因此為了進行下面的處理,檢索用指針前進一個(步驟3005)。在步驟3006中是No是因為檢索用指針所處的節(jié)點識別符的節(jié)點不是頂點節(jié)點的子孫,因此結(jié)束處理。
      在圖31A的例子中,考慮頂點節(jié)點列表是[1、6、8]。著眼于節(jié)點識別符“1”的頂點節(jié)點(參照箭頭)。檢索用指針最初配置在節(jié)點識別符“2”的位置。在該時刻,檢索用指針表示的C-P排列的值由于是“1”,因此節(jié)點識別符“2”被保存在新的頂點節(jié)點列表中。
      另外,當檢索用指針被配置在節(jié)點識別符“5”時,該檢索用指針表示的C-P排列的值由于是“1”,因此節(jié)點識別符“5”被保存在新的頂點節(jié)點列表中。然后,當檢索用指針位于節(jié)點識別符“6”時,該檢索用指針表示的C-P排列的值是“0”,由于比基準節(jié)點的節(jié)點識別符“1”小,因此結(jié)束處理本身。
      接著,說明在把頂點節(jié)點移動到相當于父親的節(jié)點時,在計算機系統(tǒng)10中執(zhí)行的處理。移動到相當于父親的節(jié)點時的處理與圖26所示的相同。在圖32A的例子中,考慮頂點節(jié)點列表是[2、5、7、9]。如果著眼于節(jié)點識別符“2”的頂點節(jié)點(參照箭頭),則與節(jié)點識別符“2”相對應的C-P排列的值(參照圖32B)由于是“1”,因此該值被保存在新的頂點節(jié)點列表中。同樣,關(guān)于節(jié)點識別符“5”、“7”、“9”,由于相對應的C-P排列的值分別是“1”、“6”、“8”,因此新的頂點節(jié)點列表成為[1、1、6、8]。
      圖33是表示在把頂點節(jié)點移動到相當于弟的節(jié)點時,在計算機系統(tǒng)10中執(zhí)行的處理的流程圖。如圖33所示,計算機系統(tǒng)10參照頂點節(jié)點列表的值(步驟3301),取得該頂點節(jié)點列表的值表示的C-P排列的值(節(jié)點識別符)(步驟3302)。接著,計算機系統(tǒng)10在下一個節(jié)點識別符(僅大“1”的值的節(jié)點識別符)以后,檢索具有相同C-P排列的值的節(jié)點識別符(步驟3303)。如果發(fā)現(xiàn)相同的值(步驟3304中的Yes)則計算機系統(tǒng)10把具有其值的節(jié)點識別符保存到新的頂點節(jié)點列表中(步驟3305)。在沒有發(fā)現(xiàn)相同值的情況下,判斷為該頂點節(jié)點消失。
      計算機系統(tǒng)通過對所有的頂點節(jié)點列表的值執(zhí)行步驟3301~3305的處理(步驟3306),在新的頂點節(jié)點列表中保存被移動到相當于弟的節(jié)點的頂點節(jié)點的節(jié)點識別符。在圖34A中,考慮頂點節(jié)點列表是[2、5、7、9]。如果著眼于節(jié)點識別符“2”的頂點節(jié)點,則與節(jié)點識別符相對應的C-P排列的值是“1”。在圖33的處理中,由于能夠檢索C-P排列的值是“1”那樣的節(jié)點識別符“5”,因此在頂點節(jié)點列表中保存節(jié)點識別符“5”。關(guān)于節(jié)點識別符“5”、“7”、“9”的頂點節(jié)點,即使搜索C-P排列,也不能夠發(fā)現(xiàn)相同的值。即,作為父節(jié)點不能發(fā)現(xiàn)具有相同號碼的節(jié)點。從而,這些頂點節(jié)點通過移動而消失。其結(jié)果,新的頂點節(jié)點的頂點節(jié)點列表成為“5”。
      圖35是構(gòu)筑本發(fā)明一個實施例的樹型數(shù)據(jù)構(gòu)造,生成頂點節(jié)點列表,而且生成頂點節(jié)點移動后的頂點節(jié)點列表的信息處理裝置3500的功能框圖。該信息處理裝置3500實際上通過在圖1所示的計算機系統(tǒng)10中安裝必要的程序來實現(xiàn)。
      如圖35所示,信息處理裝置3500具備存儲表現(xiàn)樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)以及頂點節(jié)點列表的存儲單元3501;在包括路由節(jié)點的節(jié)點上提供固有的節(jié)點識別符,把節(jié)點識別符保存到存儲單元3501中的節(jié)點定義單元3502;使提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個的節(jié)點識別符與提供給上述非路由節(jié)點的每一個父節(jié)點的節(jié)點識別符相關(guān)聯(lián),把作為表示該關(guān)聯(lián)的排列的C-P排列保存到存儲單元3501中的父子關(guān)系定義單元3503;根據(jù)保存在存儲單元3501中的節(jié)點識別符以及C-P排列,生成頂點節(jié)點列表的頂點節(jié)點列表生成單元3504;根據(jù)來自輸入裝置(參照圖1的號碼24)等的指示,使頂點節(jié)點移動,生成表示移動后的頂點節(jié)點的新的頂點節(jié)點列表的頂點節(jié)點移動處理單元3505。由頂點節(jié)點列表生成單元35生成的頂點節(jié)點列表或者由頂點節(jié)點移動處理單元3505生成的新的頂點節(jié)點列表被存儲在存儲單元3501中。
      優(yōu)選的是,節(jié)點定義單元3502作為節(jié)點識別符使用數(shù)值,更優(yōu)選的是作為節(jié)點識別符使用連續(xù)的整數(shù)。另外,父子關(guān)系定義單元3503在存儲單元3501中保存被提供給非路由節(jié)點的每一個上的節(jié)點識別符與提供給相關(guān)聯(lián)的父節(jié)點的節(jié)點識別符的、組的排列。
      另外,如果根據(jù)來自輸入裝置(參照圖1的號碼24)的指示等指定節(jié)點,則頂點節(jié)點列表生成單元3504把被指定的節(jié)點的節(jié)點識別符保存到頂點節(jié)點列表中。另外,如果根據(jù)來自輸入裝置的指示等,提供頂點節(jié)點的移動指示(向相當于父親的節(jié)點的移動、向相當于子的節(jié)點的移動、向相當于弟(兄)的節(jié)點的移動),則頂點節(jié)點移動處理單元3505從存儲單元3501取得C-P排列以及頂點節(jié)點列表,生成新的頂點節(jié)點列表,存儲到存儲單元3501中。
      本發(fā)明不限于以上的實施方式,在權(quán)利要求的范圍記載的本發(fā)明的范圍內(nèi),能夠進行各種變更,這些變更當然也包含在本發(fā)明的范圍內(nèi)。
      權(quán)利要求
      1.一種排列生成方法,其特征在于,在具備了由第1排列所表現(xiàn)的樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)的計算機中,具備以下步驟為了分別表現(xiàn)包括特定的節(jié)點以及其子孫節(jié)點的、1個以上的節(jié)點群,把該特定的節(jié)點作為頂點節(jié)點,設(shè)置保存了該節(jié)點識別符的第2排列的步驟;參照上述第1排列,使在上述第2排列中保存了節(jié)點識別符的頂點節(jié)點的每一個移動到a)用弧線直接連接該頂點節(jié)點,而且該弧線從頂點節(jié)點延伸的子節(jié)點,b)用弧線直接連接該頂點節(jié)點,而且該弧線從那里延伸到頂點節(jié)點的父節(jié)點,c)與該頂點節(jié)點同代的節(jié)點,且是從該頂點節(jié)點的父節(jié)點對于頂點節(jié)點連接弧線以前,連接有弧線的兄節(jié)點,d)與該頂點節(jié)點同代的節(jié)點,且是從該頂點節(jié)點的父節(jié)點對于頂點節(jié)點連接了弧線以后,連接有弧線的弟節(jié)點中的某一個,生成保存了移動后的新的頂點節(jié)點的節(jié)點識別符的第3排列的步驟,其中上述第1排列是向節(jié)點中提供固有的節(jié)點識別符,且節(jié)點之間的父子關(guān)系是由向作為路由節(jié)點以外的節(jié)點的、非路由節(jié)點的每一個上提供的節(jié)點識別符和與非路由節(jié)點的每一個相關(guān)聯(lián)起來的父節(jié)點的節(jié)點識別符的組構(gòu)成。
      2.根據(jù)權(quán)利要求1所述的排列生成方法,其特征在于,使同代的節(jié)點比子節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到子節(jié)點,而生成上述第3排列的步驟具有特定上述第1排列中保存了頂點節(jié)點的節(jié)點識別符的保存位置的步驟;以及把移動后的頂點節(jié)點的節(jié)點識別符決定為與該保存位置相對應的節(jié)點識別符的步驟。
      3.根據(jù)權(quán)利要求1所述的排列生成方法,其特征在于,使同代的節(jié)點比子節(jié)點優(yōu)先,對包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到父節(jié)點,生成上述第3排列的步驟具有特定上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置上的節(jié)點識別符的步驟;把移動后的頂點節(jié)點的節(jié)點識別符決定為保存到上述相對應的位置的節(jié)點識別符的步驟。
      4.根據(jù)權(quán)利要求1所述的排列生成方法,其特征在于,使同代的節(jié)點比子節(jié)點優(yōu)先,向包括路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到兄節(jié)點,生成上述第3排列的步驟具有特定上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置上的第1節(jié)點識別符的步驟;特定在上述第1排列中保存在僅比上述頂點節(jié)點識別符相對應的位置的值小1的值的保存位置上的第2節(jié)點識別符的步驟;在上述第1節(jié)點識別符與上述第2節(jié)點識別符一致的情況下,把上述移動后的頂點節(jié)點識別符決定為與上述第2節(jié)點識別符的保存位置相對應的節(jié)點識別符的步驟。
      5.根據(jù)權(quán)利要求1所述的排列生成方法,其特征在于,使同代的節(jié)點比子節(jié)點優(yōu)先,對包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到弟節(jié)點,生成上述第3排列的步驟具有特定在上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置上的第1節(jié)點識別符的步驟;特定在上述第1排列中保存在僅比上述頂點節(jié)點識別符相對應的位置的值大1的值的保存位置上的第3節(jié)點識別符的步驟;在上述第1節(jié)點識別符與第3節(jié)點識別符一致的情況下,把上述移動后的頂點節(jié)點識別符決定為與上述第3節(jié)點識別符的保存位置相對應的節(jié)點識別符的步驟。
      6.根據(jù)權(quán)利要求1所述的排列生成方法,其特征在于,使子節(jié)點比同代的節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到子節(jié)點,生成上述第3排列的步驟具有特定在上述第1排列中保存了頂點節(jié)點的節(jié)點識別符的保存位置的步驟;把移動后的頂點節(jié)點的節(jié)點識別符決定為與該保存位置相對應的節(jié)點識別符的步驟。
      7.根據(jù)權(quán)利要求1所述的排列生成方法,其特征在于,使子節(jié)點比同代的節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到父節(jié)點,生成上述第3排列的步驟具有特定在上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置的節(jié)點識別符的步驟;把移動后的頂點節(jié)點的節(jié)點識別符決定為保存在上述相對應的位置的節(jié)點識別符的步驟。
      8.根據(jù)權(quán)利要求1所述的排列生成方法,其特征在于,使子節(jié)點比同代的節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到兄節(jié)點,生成上述第3排列的步驟具有特定在上述第1排列中保存在頂點節(jié)點的節(jié)點識別符的保存位置上的第1節(jié)點識別符的步驟;檢索在上述第1排列中保存在比頂點節(jié)點的節(jié)點識別符的保存位置的值小的值的保存位置上、并且與該第1節(jié)點識別符相同的第4節(jié)點識別符的步驟;特定上述第4節(jié)點識別符的保存位置中的最大保存位置的步驟;把上述移動后的頂點節(jié)點的節(jié)點識別符決定為與上述最大保存位置相對應的節(jié)點識別符的步驟。
      9.根據(jù)權(quán)利要求1所述的排列生成方法,其特征在于,使子節(jié)點比同代的節(jié)點優(yōu)先,向包括路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到弟節(jié)點,生成上述第3排列的步驟具有特定在上述第1排列中保存在頂點節(jié)點的節(jié)點識別符的保存位置的第1節(jié)點識別符的步驟;檢索在上述第1排列中保存在比頂點節(jié)點的節(jié)點識別符的保存位置的值大的值的保存位置上、并且與該第1節(jié)點識別符相等的第5節(jié)點識別符的步驟;特定上述第5節(jié)點識別符的保存位置中的最小保存位置的步驟;把上述移動后的頂點節(jié)點的節(jié)點識別符決定為與上述最大保存位置相對應的節(jié)點識別符的步驟。
      10.一種排列生成程序,該排列生成程序是能夠由具備了由第1排列所表現(xiàn)的樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)的計算機讀取的計算機程序,且使該計算機執(zhí)行以下步驟為了分別表現(xiàn)包括特定的節(jié)點以及其子孫節(jié)點的、1個以上的節(jié)點群,把該特定的節(jié)點作為頂點節(jié)點,設(shè)置保存了該節(jié)點識別符的第2排列的步驟;參照上述第1排列,使在上述第2排列中保存了節(jié)點識別符的頂點節(jié)點的每一個移動到a)用弧線直接連接該頂點節(jié)點,而且該弧線從頂點節(jié)點延伸的子節(jié)點,b)用弧線直接連接該頂點節(jié)點,而且該弧線從那里延伸到頂點節(jié)點的父節(jié)點,c)與該頂點節(jié)點同代的節(jié)點,且是從該頂點節(jié)點的父節(jié)點對于頂點節(jié)點連接弧線以前,連接有弧線的兄節(jié)點,d)與該頂點節(jié)點同代的節(jié)點,且是從該頂點節(jié)點的父節(jié)點對于頂點節(jié)點連接了弧線以后,連接有弧線的弟節(jié)點中的某一個,生成保存了移動后的新的頂點節(jié)點的節(jié)點識別符的第3排列的步驟,其中上述第1排列是向節(jié)點中提供固有的節(jié)點識別符,且節(jié)點之間的父子關(guān)系是由向作為路由節(jié)點以外的節(jié)點的、非路由節(jié)點的每一個上提供的節(jié)點識別符和與非路由節(jié)點的每一個相關(guān)聯(lián)起來的父節(jié)點的節(jié)點識別符的組構(gòu)成。
      11.根據(jù)權(quán)利10所述的排列生成程序,其特征在于,使同代的節(jié)點比子節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到子節(jié)點,而在生成上述第3排列的步驟上使上述計算機執(zhí)行特定上述第1排列中保存了頂點節(jié)點的節(jié)點識別符的保存位置的步驟;以及把移動后的頂點節(jié)點的節(jié)點識別符決定為與該保存位置相對應的節(jié)點識別符的步驟。
      12.根據(jù)權(quán)利10所述的排列生成程序,其特征在于,使同代的節(jié)點比子節(jié)點優(yōu)先,對包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到父節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置上的節(jié)點識別符的步驟;把移動后的頂點節(jié)點的節(jié)點識別符決定為保存到上述相對應的位置的節(jié)點識別符的步驟。
      13.根據(jù)權(quán)利10所述的排列生成程序,其特征在于,使同代的節(jié)點比子節(jié)點優(yōu)先,向包括路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到兄節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置上的第1節(jié)點識別符的步驟;特定在上述第1排列中保存在僅比上述頂點節(jié)點識別符相對應的位置的值小1的值的保存位置上的第2節(jié)點識別符的步驟;在上述第1節(jié)點識別符與上述第2節(jié)點識別符一致的情況下,把上述移動后的頂點節(jié)點識別符決定為與上述第2節(jié)點識別符的保存位置相對應的節(jié)點識別符的步驟。
      14.根據(jù)權(quán)利10所述的排列生成程序,其特征在于,使同代的節(jié)點比子節(jié)點優(yōu)先,對包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到弟節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定在上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置上的第1節(jié)點識別符的步驟;特定在上述第1排列中保存在僅比上述頂點節(jié)點識別符相對應的位置的值大1的值的保存位置上的第3節(jié)點識別符的步驟;在上述第1節(jié)點識別符與第3節(jié)點識別符一致的情況下,把上述移動后的頂點節(jié)點識別符決定為與上述第3節(jié)點識別符的保存位置相對應的節(jié)點識別符的步驟。
      15.根據(jù)權(quán)利10所述的排列生成程序,其特征在于,使子節(jié)點比同代的節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到子節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定在上述第1排列中保存了頂點節(jié)點的節(jié)點識別符的保存位置的步驟;把移動后的頂點節(jié)點的節(jié)點識別符決定為與該保存位置相對應的節(jié)點識別符的步驟。
      16.根據(jù)權(quán)利10所述的排列生成程序,其特征在于,使子節(jié)點比同代的節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到父節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定在上述第1排列中保存在與頂點節(jié)點的節(jié)點識別符相對應的位置的節(jié)點識別符的步驟;把移動后的頂點節(jié)點的節(jié)點識別符決定為保存在上述相對應的位置的節(jié)點識別符的步驟。
      17.根據(jù)權(quán)利10所述的排列生成程序,其特征在于,使子節(jié)點比同代的節(jié)點優(yōu)先,向包含路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到兄節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定在上述第1排列中保存在頂點節(jié)點的節(jié)點識別符的保存位置上的第1節(jié)點識別符的步驟;檢索在上述第1排列中保存在比頂點節(jié)點的節(jié)點識別符的保存位置的值小的值的保存位置上、并且與該第1節(jié)點識別符相同的第4節(jié)點識別符的步驟;特定上述第4節(jié)點識別符的保存位置中的最大保存位置的步驟;把上述移動后的頂點節(jié)點的節(jié)點識別符決定為與上述最大保存位置相對應的節(jié)點識別符的步驟。
      18.根據(jù)權(quán)利10所述的排列生成程序,其特征在于,使子節(jié)點比同代的節(jié)點優(yōu)先,向包括路由節(jié)點的節(jié)點上提供固有的連續(xù)的整數(shù),按照提供給作為上述路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上的整數(shù)的順序,通過排列提供給上述非路由節(jié)點的每一個父節(jié)點上的整數(shù)而形成上述第1排列,為了使上述頂點節(jié)點的每一個移動到弟節(jié)點,在生成上述第3排列的步驟上使上述計算機執(zhí)行特定在上述第1排列中保存在頂點節(jié)點的節(jié)點識別符的保存位置的第1節(jié)點識別符的步驟;檢索在上述第1排列中保存在比頂點節(jié)點的節(jié)點識別符的保存位置的值大的值的保存位置上、并且與該第1節(jié)點識別符相等的第5節(jié)點識別符的步驟;特定上述第5節(jié)點識別符的保存位置中的最小保存位置的步驟;把上述移動后的頂點節(jié)點的節(jié)點識別符決定為與上述最大保存位置相對應的節(jié)點識別符的步驟。
      全文摘要
      本發(fā)明提供能夠有效地跟蹤樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)之間的例如父子、祖先、子孫、兄弟、同輩等關(guān)系的樹型數(shù)據(jù)構(gòu)造的表現(xiàn)方法,在存儲器中設(shè)置有由C-P排列表現(xiàn)的樹型數(shù)據(jù)構(gòu)造的數(shù)據(jù)和頂點節(jié)點列表,其中C-P排列是向節(jié)點上提供固有的節(jié)點識別符,且節(jié)點之間的父子關(guān)系是由向作為路由節(jié)點以外的節(jié)點的非路由節(jié)點的每一個上提供的節(jié)點識別符和與非路由節(jié)點的每一個相關(guān)聯(lián)的父節(jié)點的節(jié)點識別符這樣的組構(gòu)成,上述頂點節(jié)點列表是為了分別表現(xiàn)包含特定的節(jié)點以及其子孫節(jié)點的1個以上的節(jié)點群,以特定的節(jié)點作為頂點節(jié)點,保存了其節(jié)點識別符的頂點節(jié)點列表。系統(tǒng)10參照C-P排列,把頂點節(jié)點的每一個移動到子節(jié)點、父節(jié)點或者與頂點節(jié)點同代的節(jié)點(兄節(jié)點或弟節(jié)點),生成新的頂點節(jié)點列表。
      文檔編號G06F17/30GK101031892SQ200580032898
      公開日2007年9月5日 申請日期2005年9月28日 優(yōu)先權(quán)日2004年10月1日
      發(fā)明者古莊晉二 申請人:特博數(shù)據(jù)實驗室公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1