首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVL树中的LR

AVL树中的LR
EN

Stack Overflow用户
提问于 2013-12-27 17:38:30
回答 1查看 93关注 0票数 0

我只是在处理AVL树、insert、delete和其他方法,所以现在,当节点不是根(也就是节点的父节点不等于0)时,我的左旋转出现了问题。所以,我的方法的一部分,实际上它的正确开头是这样的:

代码语言:javascript
复制
void LR (Node* &c)
{
    if (c->_parent != 0)
    {
        if ( c == c->_parent->_left)
        {
            c->_parent->_left = c->_right;
        }
        else
        c->_parent->_right = c->_right;
        c->_right->_parent = c->_parent;
    }
etc. etc.

所以,当我有一个节点c,它有键389,父非零和右子非零,有一个键等于390时,我的代码转储并在这个实例之后写到:

代码语言:javascript
复制
    c->_parent->_left = c->_right;

我的右子c->_right变为空:/我不明白。有人吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-27 18:27:38

如果使用调试器时,c不是零,c->right不是零,那么程序就会出现分段错误,然后检查正在调试的程序是否已正确编译。

观察相关变量的值变化,并逐步通过,直到变量变为有效。

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

https://stackoverflow.com/questions/20805196

复制
相关文章

相似问题

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