• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Benjamin

            靜以修身,儉以養(yǎng)德,非澹薄無以明志,非寧靜無以致遠(yuǎn)。
            隨筆 - 398, 文章 - 0, 評(píng)論 - 196, 引用 - 0
            數(shù)據(jù)加載中……

            鍵樹介紹及其實(shí)現(xiàn)

            鍵樹又稱為數(shù)字查找樹(Digital Search Tree)或Trie樹(trie為retrieve中間4個(gè)字符),其結(jié)構(gòu)受啟發(fā)于一部大型字典的“書邊標(biāo)目”。字典中標(biāo)出首字母是A,B,C,....Z的單詞所在頁,再對(duì)各部分標(biāo)出第二字母為A,B,C,...Z的單詞所在的頁, ....等等。
            1:鍵樹的定義
              鍵樹是一種特殊的查找樹,它的某個(gè)節(jié)點(diǎn)不是包含一個(gè)或多個(gè)關(guān)鍵字,而是只包含組成關(guān)鍵字的一部分(字符或數(shù)字),比如:如果關(guān)鍵字是數(shù)值,則節(jié)點(diǎn)中只包含一個(gè)數(shù)位;如果關(guān)鍵字是單詞,則節(jié)點(diǎn)中只包含一個(gè)字母字符。
              2:鍵樹的存儲(chǔ)
              鍵樹的存儲(chǔ)通常有兩種方式:
              (1)雙鏈樹表示
              如果以樹的孩子兄弟表示,則每個(gè)節(jié)點(diǎn)包含3個(gè)域。
              A: symbol域: 存儲(chǔ)關(guān)鍵字的一個(gè)字符
              B: son域: 存儲(chǔ)指向第一棵子樹的根的指針,葉子節(jié)點(diǎn)的son域指向該關(guān)鍵字記錄的指針
              C: brother域: 存儲(chǔ)指向右兄弟的指針.
              這時(shí)的鍵樹又稱為雙鏈樹.
              //雙鏈樹的存儲(chǔ)表示
              typedef struct DULNode{
              char symbol; //結(jié)點(diǎn)字符域
              struct DULNode *son, *brother; //son指向子樹根結(jié)點(diǎn),brother指向右兄弟結(jié)點(diǎn).
              }DULNode ,*DLTree;
              (2) 多重鏈表表示
              如果以樹的多重鏈表表示鍵樹, 則樹的每個(gè)結(jié)點(diǎn)中應(yīng)包含d個(gè)(d為關(guān)鍵字符的基,如:字符集由英文大寫字母構(gòu)成時(shí),則d=26+1=27)指針域,此時(shí)的鍵樹又稱為Trie樹。如果從鍵樹中某個(gè)結(jié)點(diǎn)到葉子結(jié)點(diǎn)的路徑上每個(gè)結(jié)點(diǎn)都只有一個(gè)孩子,則可以將該路徑上的所有結(jié)點(diǎn)壓縮為一個(gè)“葉子結(jié)點(diǎn)”,且在該葉子結(jié)點(diǎn)中存儲(chǔ)關(guān)鍵字及指向記錄的指針等信息。
              以上數(shù)據(jù)結(jié)構(gòu)很容易讓人聯(lián)想到電話號(hào)碼,如果關(guān)鍵字的取值為[0,9],則很容易用來處理像電話號(hào)碼這類的數(shù)據(jù)。如果目前固定電話的長度算8位的話,那查找的的時(shí)間復(fù)雜度為常數(shù)8。
              計(jì)費(fèi)系統(tǒng)中的用戶資料在計(jì)費(fèi)過程中使用非常頻繁,如果id作為關(guān)鍵字的鍵樹算法的話,將大大的提高查詢速度。
              下面是它的實(shí)現(xiàn)代碼     
            鍵樹的實(shí)現(xiàn)代碼

            posted on 2009-03-23 22:34 Benjamin 閱讀(1274) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++

            欧美日韩中文字幕久久伊人| 麻豆精品久久久久久久99蜜桃| 99久久免费国产精品特黄| 狠狠人妻久久久久久综合蜜桃| 精品久久久久久中文字幕人妻最新 | 久久综合久久美利坚合众国| 久久午夜无码鲁丝片午夜精品| 久久综合给合综合久久| 亚洲精品无码久久毛片| 亚洲伊人久久精品影院| 久久99久久99精品免视看动漫| 久久久噜噜噜久久中文福利| 国产成人精品久久二区二区| 久久99精品久久久久久动态图| 国产精品美女久久久| 久久精品夜色噜噜亚洲A∨| 国内精品伊人久久久久影院对白 | 色综合久久天天综线观看| 久久亚洲精品无码VA大香大香| 亚洲精品tv久久久久久久久 | 亚洲国产成人久久一区久久 | www.久久热.com| 欧美午夜精品久久久久久浪潮| 日韩精品久久久肉伦网站 | 99久久久国产精品免费无卡顿| 亚洲伊人久久大香线蕉苏妲己| 久久这里有精品| 狠狠色丁香久久综合五月| 国产精品伦理久久久久久| 久久人人爽人人人人爽AV | 色噜噜狠狠先锋影音久久| 久久久久亚洲爆乳少妇无| 亚洲AV成人无码久久精品老人| 国产免费福利体检区久久| 无码国内精品久久人妻| 日本久久久久久久久久| 2021精品国产综合久久| 国产精品久久久久蜜芽| 久久精品国产精品亚洲人人| 99久久精品午夜一区二区| 久久久亚洲裙底偷窥综合|