C++设计和实现一个基于最简单的节点的二叉排序树,要求:包含一个初始化树结构的方法,然后输入第个数,建立第一个节点;之后输入第二个数,建立第二个节点,依次进行下去,当输入最后一个数65的时候,建立完成这棵树。每个父亲节点的左孩子都是比父亲节点小的节点,每个父亲节点的右子树都是比父亲节点大的数。
时间: 2023-02-09 21:27:42 浏览: 84
精选_毕业设计_基于C++实现的二叉排序树_完整源码
C语言实现二叉排序树的步骤如下:
1. 定义二叉排序树的节点结构,包括数据域和左右子树指针。
struct TreeNode {
int data;
struct TreeNode *left;
struct TreeNode *right;
};
2. 定义初始化树的函数,用于创建第一个节点。
void initTree(struct TreeNode **root, int data) {
*root = (struct TreeNode*)malloc(sizeof(struct TreeNode));
(*root)->data = data;
(*root)->left = (*root)->right = NULL;
}
3. 定义插入节点的函数,用于向二叉排序树中插入新的节点。
void insertNode(struct TreeNode *root, int data) {
// 如果当前节点的数据比新节点的数据大,则新节点应该插入到当前节点的左子树中。
if (data < root->data) {
if (root->left == NULL) {
root->left = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->left->data = data;
root->left->left = root->left->right = NULL;
} else {
insertNode(root->left, data);
}
}
// 如果当前节点的数据比新节点的数据小,则新节点应该插入到当前节点的右子树中。
else {
if (root->right == NULL) {
root->right = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->right->data = data;
root->right->left = root->right->right = NULL;
} else {
insertNode(root->right, data);
}
}
}
4. 用以下代码创建并填充二叉排序树。
int main() {
struct TreeNode *root;
initTree(&root, 10);
insertNode(root, 5);
insertNode(root, 15);
insertNode(root, 3);
insertNode(root, 7);
阅读全文