树定义文件,本程序实行一个简单的 树
!"#$""#
%&'""
()"'#"%#*&$""**&* "
+,#&#
-)&".$'*"$"'&*&)
"&".$#&"/*&"
"
一个 # 阶的 树由根结点、内部结点和叶子结点组成。
%根结点可以是叶子结点,也可以是有两个或更多子树的内部结点。
(每个内部结点包含 #0%# 个键。如果一个内部结点包含 * 个键,则有且只有 * 个指向
子树的指针。
+叶子结点总是在树的同一层上。
-如果叶子结点是主索引,它包含一组按键值排序的记录;如果叶子结点是从索引,它包
含一组短记录,每个短记录包含一个键以及指向实际记录的指针。
1内部结点的键值和叶子结点的数据值都是从小到大排序的。
2在中间结点中,每个键的左子树中的所有的键都小于这个键,每个键的右子树中的所有
的键都大于等于这个键。
树的阶,即内部结点中键的最小数目 #。
也有些人把阶定义为内部结点中键的最大数目,即 %#。
一般而言,叶子结点中最大数据个数和内部结点中最大键个数是一样的,也是 %#。我想这
样做的目的是为了把内部结点和叶子结点统一到同一个结构中吧
3"456578%为简单起见,把 # 固定为 %,实际的 树 # 值应该是可配的
3"9!:;<97=6>456578%内部结点中最多键个数,为 %#
3"9!:;<974);659!:;<97=6> 内部结点中最多指向子树的指针个数,
为 %#
3"9!:;<97!!456578%叶子结点中最多数据个数,为 %#
键值的类型
&"=6>7>6?为简单起见,定义为 类型,实际的 树键值类型应该是可配
的
备注:为简单起见,叶子结点的数据也只存储键值
评论7