施工中施工中
基本操作主要包括:搜尋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的呼叫可...