gpt4 book ai didi

c++ - 二叉搜索树实现。

转载 作者:行者123 更新时间:2023-11-28 01:07:15 24 4
gpt4 key购买 nike

我试图实现二叉搜索树,但我认为我在插入函数中犯了一个错误。这是我的代码

#include<iostream>
#include<memory.h>
#include <cstddef>
using namespace std;
struct bst_node
{
int info;
struct bst_node *left_node_ptr;
struct bst_node *right_node_ptr;
};

struct bst_node* getnode(int x)
{

struct bst_node* ret= new bst_node;
ret->info=x;
ret->left_node_ptr=NULL;
ret->right_node_ptr=NULL;
return ret;
}

void insert(struct bst_node **root, int var_info)
{
struct bst_node *temp=(*root); // Links the temporary pointer to root of the BST
while(temp!=NULL) // Loop till I find a suitable position for inserting
{
if(temp->info > var_info)
{
temp=temp->left_node_ptr;
}
else
{
temp=temp->right_node_ptr;
}

}
temp= getnode(var_info);
return ;
}

/* Recursive In order Traversal */
void inorder_recursive( struct bst_node * L)
{
if(L!= NULL)
{
inorder_recursive(L->left_node_ptr);
cout<<L->info<<endl;
inorder_recursive(L->right_node_ptr);
}
return;
}
int main()
{
struct bst_node* my_root= getnode(5);
insert(&my_root, 6);
insert(&my_root, 3);
/*
int x=1;
int arr[]= {};
while(x)
{
cin>>x;
insert(&my_root, x);
}*/
inorder_recursive(my_root);
return 0;
}

最佳答案

您从未实际设置节点的 left_node_ptrright_node_ptr 值。您的插入函数沿着树向下运行,找到放置新节点的正确位置,然后分配节点 - 但实际上并没有将新节点附加到您找到的父节点的左侧或右侧。

关于c++ - 二叉搜索树实现。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5498487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com