二叉搜索树插入数据问题
Binary search tree insertion data problem
我正在尝试实现我自己的二叉搜索树,我一直卡在插入数据上,你能解释一下我做错了什么吗?
void tree::add(int data) {
tree * tmp = new tree;
if (root == NULL) {
root = tmp;
root->data = data;
root->left = NULL;
root->right = NULL;
}
else if (data <= root->data) {
left = tmp;
left->data = data;
left->left = NULL;
left->right = NULL;
while (tmp != NULL) {
if (data <= left->data) {
tmp = left->left;
} else {
tmp = left->right;
}
}
}
我正在尝试填充左节点,如果数据我小于根,但如果数据大于此叶但仍然小于根,它应该是右子节点,但实际上我可以访问
你应该修改算法的逻辑:
//here you set the pointers to null
left->left = NULL;
left->right = NULL;
while (tmp != NULL) {
if (data <= left->data) {
// here at the first time
tmp = left->left;
} else {
// or here
tmp = left->right;
}
// tmp will be set to null and the exection will end immediately
}
相关文章:
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- HDF5Cpp 扩展复合数据集超板问题
- C++:__aligned(__alignof__) 导致字符数组数据出现问题?
- 我对数据结构、双向链表有一些问题
- 使用蓝牙组件将数据从Android手机传输到串行设备时出现问题
- Java 客户端C++服务器数据发送/接收问题
- printf 数据类型说明符复杂问题
- 从文件导入数据时遇到问题.我有一个没完没了的循环
- 对于这个问题,是否有更好的数据结构和算法选择
- 使用SSE内部函数复制少量数据时出现问题
- 面临在 if 语句之外打印变量数据的问题 完成使用 Qt 编程
- 面对迭代矢量<矢量<string>>和打印数据的问题
- C++中从客户端到服务器的数据传输问题
- 将此类数据作为字符串进行比较时出现问题
- 线程清理器检测到数据争用,问题出在哪里?
- 二叉搜索树插入数据问题
- 最近点对O(nlogn)算法——c++实现中的一些数据问题
- QTWebsocket / jwebsocket大数据问题
- Qt 5.5 QOpenGLTexture复制数据问题