//这是我在学时写的c++的b树的实现.
b树有四个性质:
1.树中每个节点最多含有2m-1的节点;
2.除了根节点外,其他每个节点至少有m-1个孩子;
3.若根节点不是叶子节点则至少有2个孩子(即整个树只有根节点);
4.所有叶子节点都在同一层
#include <iostream> using namespace std; static const int m = 3; //定义最小度为3 static const int key_max = 2*m-1;//关键字最大个数 static const int key_min = m - 1;//关键字最小个数 static const int child_max = key_max + 1;//子节点最大个数(这里可以看出子节点数与关键字数有关) static const int child_min = key_min + 1;//子节点最小个数 template <class t=""> class btree;//前置声明 /* 类名:btnode */ template <class t=""> class btnode { friend class btree<t>;//友元函数 public: btnode() { keynum = 0; parent = null;//父节点初始化 isleaf = true; int i ; for (i = 0;i < child_max;i++)//子树指针数组初始化 { pchild[i] = null; } for (i = 0;i < key_max;i++)//关键字数组初始化 { keyvalue[i] = '