B-樹的C++實現

來源:互聯網
上載者:User

發布一個B-樹的代碼

 

代碼下載:http://bluedog.download.csdn.net

 

B-mso-ascii-font-family:">樹網上的代碼很象不是很多,關於它的原理我覺得沒有必要要談了,書上網上太多了。這裡我花了幾天的時間寫了一個,大家覺得有用的話就用吧,已經進行大量的測試,應該沒有什麼太大問題了,它由兩個檔案定義:BinaryMinusTree.h ">和 BinaryMinusTree.inc">,你只要包含BinaryMinusTree.h">就好了。

#include
"BinaryMinusTree.h"

這兩個檔案定義了幾個類,不過你唯一需要瞭解的只是CBinaryMinusTree ">這個類,它的定義如下:

" lang="EN-US">template<typename TK,typename
TV,size_t THD=10>

class9.0pt;font-family:" lang="EN-US"> BinaryMinusTreeKey

TK mso-ascii-font-family:">是 Key">值的類型,

TVmso-ascii-font-family:">是 Val ">值的類型,

THD mso-ascii-font-family:">是節點度的一半,意思是如果你一個節點的度是21">即有font-family:" lang="EN-US">21個font-family:" lang="EN-US">KEY值,那麼font-family:" lang="EN-US">THD就應為font-family:" lang="EN-US">10

" lang="EN-US"> 

mso-ascii-font-family:">它有幾個方法:

" lang="EN-US">bool Add(TK
key,TV val); //9.0pt;font-family:宋體;mso-ascii-font-family:">增加一個Keyfont-family:宋體;mso-ascii-font-family:">和值

" lang="EN-US">bool
Remove(TK key);     
//font-family:宋體;mso-ascii-font-family:">刪除一個Key

" lang="EN-US">void
Print();yes">              //宋體;mso-ascii-font-family:">列印樹

void9.0pt;font-family:" lang="EN-US"> Clear();             
//font-family:宋體;mso-ascii-font-family:">刪除所有資料

" lang="EN-US"> 

mso-ascii-font-family:">還有幾個公用成員:

" lang="EN-US">LPBMTN Root;yes">  //mso-ascii-font-family:">根節點

" lang="EN-US">size_t KeyCount; //關鍵字數量

" lang="EN-US">size_t Level; //樹層數

size_t NodeCount; //樹節點數

沒有提供其它功能,有其它需要的朋友自已完善它吧。呵呵。

附記:其實B-樹的原理很簡單,書上提供的演算法描述也很清楚,不過真正要寫好它還是有點難度,很多要注意的地方,一不小心樹就掛了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.