二叉排序树的数据结构。
struct TreeNode {ElemType data;TreeNode *left, *right;
};
using BiTree = TreeNode *;
结构体包含三个成员:
data
是一个ElemType
类型的变量,用于存储二叉搜索树节点的数据。left
是一个指向TreeNode
类型的指针,用于指向二叉搜索树节点的左子节点。right
是一个指向TreeNode
类型的指针,用于指向二叉搜索树节点的右子节点。
Status insertBST(BiTree &T, ElemType e) {if (!T) {T = (TreeNode *)malloc(sizeof(TreeNode));if (!T) {return ERROR;}T->data = e;T->left = T->right = nullptr;return OK;} else if (e < T->data) {return insertBST(T->left, e);} else if (e > T->data) {return insertBST(T->right, e);}return OK;
}void inorderInsert(BiTree &T, BiTree &dst) {if (T) {inorderInsert(T->left, dst);insertBST(dst, T->data);inorderInsert(T->right, dst);}
}
怎样从二叉排序树得到有序表。
中序遍历二叉排序树可得到一个关键字的有序序列。
void inorderPrint(BiTree &T) {if (T) {inorderPrint(T->left);cout << T->data << " ";inorderPrint(T->right);}
}