第十八章 B樹

2021-10-20 18:32:34 字數 2740 閱讀 8079

施工中施工中

基本操作主要包括:搜尋b樹,建立空b樹,插入關鍵字。

18.3放出刪除關鍵字的**。

class

program

#region "磁碟操作"

///

/// 為結點初始化對應的磁碟頁

///

///

///

private

static node<

t>

allocate_node

<

t>()

;}///

/// 磁碟寫操作

///

///

///

private

static

void

disk_write

<

t>

(node<

t> node)")

;}///

/// 磁碟讀操作

///

///

///

///

private

static

void

disk_read

<

t>

(node<

t> node)")

;}#endregion

#region "b樹操作"

///

/// b樹建立

///

///

///

private

static

void

b_tree_create

<

t>

(btree<

t> btree)

///

/// 查詢k

///

///

///

///

///

public

static

tb_tree_search

<

t>

(node<

t> x, int k)

if(x.key[i]

== k)

else

else}}

///

/// b樹插入

///

///

///

///

public

static

void

b_tree_insert

<

t>

(btree<

t> btree, int k,

t data)

else

}///

/// b樹插入(非滿結點)

///

///

///

///

///

private

static

void

b_tree_insert_nofull

<

t>

(btree<

t> btree, node<

t> x, int k,

t data)

i++; x.key[i]

= k;

x.data[i]

= data;

x.n++;}

else

i++;disk_read

(x.c[i]);

if(x.c[i]

.n == btree.t *2-

1)}b_tree_insert_nofull

(btree, x.c[i]

, k, data);}

}///

/// 結點**

///

///

///

///

///

private

static

void

b_tree_spliat_child

<

t>

(btree<

t> btree, node<

t> x, int i)if(

!y.leaf)

} y.n = t -1;

for(

var j = x.n -1;

j >= i;

j--) x.key[i]

= y.key[t -1]

; x.data[i]

= y.data[t -1]

;for

(var j = x.n;

j >= i +1;

j--) x.c[i +1]

= z;

x.n++;}

#endregion

}public

class

node

<

t>

public int n =0

;public int[

] key

publict[

] data;

public node<

t>

c }public

class

btree

<

t>

public

btree

(int tvalue)

}

施工中

第十八章 定製特性

目錄 18.1 使用定製特性 18.2 定義自己的特性類 18.3 特性構造器和字段 屬性資料型別 18.4 檢測定製特性 18.5 兩個特性例項的相互匹配 18.6 檢測定製特性時不建立從attribute派生的物件 18.7 條件特性類 定製特性 利用定製特性,可宣告式地為自己的 構造新增註解來...

第十八章 18 2 3節練習

練習18.18 已知遊俠面的swap的典型定義 參見13.3節,第457頁 當mem1是乙個string時程式使用swap的哪個版本?如果mem1是int呢?說明在這兩種情況下名字查詢的過程。void swap t v1,t v2 解答 這裡典型定義應該指的是有乙個專為string交換而建立的swa...

第十八章 18 3 3節練習

struct base1 struct base2 struct derived public base1 struct mi public derived,public base2 練習18.26 已知如上所示的繼承體系,下面對print的呼叫為什麼是錯誤的?適當修改mi,令其對print的呼叫可...