Titan專欄

          用文字來整理生命

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            44 隨筆 :: 49 文章 :: 19 評論 :: 0 Trackbacks

          B-樹,B-樹是一種非二叉的查找樹。它除了要滿足查找樹的特性,還要滿足以下結(jié)構(gòu)特性:

              一棵M階的B-樹,(1) 樹的根或者是一片葉子(一個節(jié)點的樹),或者其兒子數(shù)在2和M之間。(2) 除根外,所有的非葉子節(jié)點的孩子數(shù)在M/2和M之間。(3),所有的葉子節(jié)點都在相同的深度。

          要注意的是,B-樹中,所有的數(shù)據(jù)都存放在葉子節(jié)點。而在葉子節(jié)點上存放的數(shù)據(jù)量是有限的。

          B-樹的插入與刪除,唯一要考慮的問題是,讓插入或刪除以后的樹,依然滿足B-樹的特性。在某些情況下,這也是一個比較復雜的過程。說不清楚,看書中的例子。書中的方法其實也都是定式。因為計算機本身不會思考。所以當我們思考計算機要做的工作時,我們要學會像計算機一樣機械的考慮問題。說白了就是if。。。then。。。else。

          B-樹的平均深度為logm/2N。執(zhí)行查找的平均時間為O(logM)。

          B-樹應用在數(shù)據(jù)庫系統(tǒng)中。具體指的是應該是索引。它加快了訪問數(shù)據(jù)的速度。

          書中提到這一種流行的定義B-樹的方法。還有一種定義的方法是允許把數(shù)據(jù)存放在內(nèi)部節(jié)點中。而沒有提到B+樹。而我在google上找出的B+樹的定義和以上對B-樹的定義很像:“A B-Tree in which keys are stored in the leaves. ”。這讓我很困惑。究竟那個是B+樹哪個是B-樹。

          posted on 2006-02-12 16:29 Titan 閱讀(3045) 評論(3)  編輯  收藏

          評論

          # re: B-樹 2006-07-05 10:05 高昂的心
          沒有算法實現(xiàn)  回復  更多評論
            

          # re: B-樹 2006-09-10 10:15 aaaaaaaaaaa
          看看這個,有源代碼和演示程序的
          http://www.rosipay.com/1/41219.html  回復  更多評論
            

          # re: B-樹 2008-05-15 19:37 lemonroot
          你這個上面描述的是B+-樹。B-樹的數(shù)據(jù)并不都是存儲在葉結(jié)點中的。  回復  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 洪泽县| 棋牌| 六盘水市| 马边| 余干县| 务川| 海宁市| 三都| 贡山| 大同市| 渝中区| 奎屯市| 乡宁县| 盘山县| 全南县| 孟州市| 金华市| 福州市| 厦门市| 枞阳县| 林西县| 琼结县| 平南县| 光泽县| 积石山| 西昌市| 长汀县| 太白县| 封开县| 融水| 高要市| 宁海县| 金山区| 惠州市| 长顺县| 阜新| 奈曼旗| 额济纳旗| 海口市| 阳东县| 佛山市|