生成二叉排序树就是在一个空树中不断地执行 二叉排序树插入操作。
二叉排序树插入操作算法思想如下:
因此,二叉排序树生成算法为:
//二叉排序树的插入操作
void InsertBST_Real(BSTree& T, keytype key) {
if (!T) {
T = new BSTNode;
T->data.key = key;
T->lchild = NULL;//创建一个新树,不仅要给数值域赋值,还要记得给左右孩子的指针域赋值!!
T->rchild = NULL;//错误点:忘记左右孩子指针域的赋值,TMD!
}
else if (key < T->data.key)
InsertBST_Real(T->lchild, key);
else if (key > T->data.key)
InsertBST_Real(T->rchild, key);
}
//二叉排序树的生成
void CreatBST_Real(BSTree& T, keytype key[], int n) {
for (int i = 0; i < n; i++) {
InsertBST_Real(T, key[i]);
}
}