【问题标题】:Recursive Function Error: "-var-create: unable to create variable object"递归函数错误:“-var-create:无法创建变量对象”
【发布时间】:2019-10-29 22:07:18
【问题描述】:

我制作了一个二叉树来存储 2 个字符“R”和“B”。插入和打印功能正常,但在执行搜索功能时,在 VS 代码的调试器工具下查看指针变量时会出现错误-var-create: unable to create variable object

节点结构代码:

struct Node
{
    Node * left;
    Node * right;
    char value;
    bool endSeq = false;
};

BST 的搜索功能:

bool search(string k)
        {
            int len = k.length();
            bool found = false;
            searchHelper(root, k, len, found);
            if(found)
            {
                return true;
            }
            return false;
        }

Node * searchHelper(Node * p, string k, int & len, bool & found)
        {
            if(p == NULL)
            {
                return NULL;
            }
            else if(len == 0)
            {
                if(p->endSeq)
                {
                    found = true;       
                }
                return p;
            }
            else if(k[0] < p->value || (k[0] == 'B' && k[0] == p->value))
            {
                string kNew = k.substr(1, --len);
                if(p->endSeq)
                {
                    found = true;
                }
                else
                {
                    insertHelper(p->left, kNew, len);
                }
            }
            else if(k[0] > p->value || (k[0] == 'R' && k[0] == p->value))
            {
                string kNew = k.substr(1, --len);
                if(p->endSeq)
                {
                    found = true;
                }
                else
                {
                    insertHelper(p->right, kNew, len);   
                }
            }
            return p;
        }

【问题讨论】:

    标签: c++ binary-search-tree vscode-debugger


    【解决方案1】:

    您的代码有问题。您进行了错误的递归调用。而不是调用 insertHelper 你应该调用 searchHelper

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      • 2018-06-12
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 2019-11-15
      相关资源
      最近更新 更多