首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kdtree插入函数

Kdtree插入函数
EN

Stack Overflow用户
提问于 2012-06-29 05:54:37
回答 1查看 718关注 0票数 0
代码语言:javascript
复制
void insert_KD_tree(noKD **tree, Queue *queue, int counter) {


    if ((*tree)!=NULL) {
            *tree = new_KD_node(queue->first->pointer,NULL,NULL);
    }
    else if (((*tree)->pointer[counter]) > (queue->first->pointer[counter])) {
            counter++;
            insert_KD_tree(&(*tree)->left,queue);
    }
    else {
            counter++
            insert_KD_tree(&(*tree)->right,queue,counter);
    }
    pop(queue);
}

这基本上是二叉树插入函数,但用于将数组插入到节点。数组存储在队列中,但是指向指针的指针有问题。当我尝试使用gdb访问数组时,它会给出一个消息,即它不能访问内存位置0x10,但是如果我尝试在另一个函数上访问它,它就会显示位置很好,我可以访问这个数组。

我已经注意到问题是指针的问题,如果我在调用insert_KD_function时只放了一个子程序,我的程序就可以访问树->指针,而不会出现任何问题。所以这个问题与指针有关,它在某种程度上失去了指针引用。

有谁可以帮我?

EN

回答 1

Stack Overflow用户

发布于 2012-10-11 19:51:27

代码语言:javascript
复制
if ((*tree)!=NULL) {

这不意味着如果根存在,您就覆盖它吗?那不应该是== NULL

除此之外,您不应该让updates在更新时表现得不好。如果您有很多更新,您可能更好地使用一个R*-树,这是平衡的。否则,请注意树的结构,如果它变得太不平衡,则再次批量加载它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11256715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档