#include<iostream>
#include<vector>
using namespace std;
struct TreeNode
{
int val;
TreeNode* left, *right;
TreeNode(int x) :val(x), left(NULL), right(NULL){}
};
void BST_insert(TreeNode* node, TreeNode* insert_node)
{
if(insert_node->val < node->val)
{
if(node->left)
BST_insert(node->left, insert_node);
else
node -> left = insert_node;
}
else{
if(node->right)
BST_insert(node->right, insert_node);
else
node->right = insert_node;
}
}
void preorder(TreeNode* node, int layer)
{
if(node == nullptr)
return;
for(int i = 0; i < layer; ++i)
printf("----");
printf("[%d]\n", node->val);
preorder(node->left, layer + 1);
preorder(node->right, layer + 1);
}
int main()
{
TreeNode root(8);
vector<TreeNode*> node_vec;
int test[] = { 3, 10, 1, 6, 15 };
for(int i = 0; i < 5; ++i)
node_vec.push_back(new TreeNode(test[i]));
for(int i = 0; i < 5; ++i)
BST_insert(&root, node_vec[i]);
preorder(&root, 0);
return 0;
}
二叉查找树的插入
最新推荐文章于 2023-05-25 17:56:51 发布