gpt4 book ai didi

c++ - 无法从类访问节点数据

转载 作者:行者123 更新时间:2023-11-28 07:52:57 26 4
gpt4 key购买 nike

我正在创建一个类来表示 LCRS 树,但我的搜索功能遇到了困难。到目前为止,这是我得到的:

lcrs.h:

    using namespace std;
#include <cstdlib>
#include <iostream>

class node{
public:
int data;
node *right;
node *below;
};

class lcrs{
public:
int height;
node *root;
bool search(int);
void print(lcrs);
void insert(int);
void del(int);

lcrs()
{
root = NULL;
}
};

这是 lcrs.cpp:

using namespace std;
#include "lcrs.h"

bool lcrs::search(int x)
{
if(root == NULL)
return false;
else
{
if(root->data == x)
return true;
else
{
while(right != NULL && below != NULL)
{
if(right->data == x || below->data == x)
return true;
}
return false;
}
}
}

这是我的错误信息:

    lcrs.cpp: In member function ‘bool lcrs::search(int)’:
lcrs.cpp:21:26: error: ‘below’ was not declared in this scope
lcrs.cpp:23:15: error: request for member ‘data’ in ‘std::right’, which is of non-class type ‘std::ios_base&(std::ios_base&)’

我知道如果不先创建一个对象我就不能访问“右”和“下”的成员,但是我有其他方法可以访问它们吗?我只是想看看“数据”中有什么。如果不先实例化一个节点,我不知道如何做到这一点。

非常感谢您的帮助。

最佳答案

你是想用递归来做这个吗?您需要将当前节点作为函数参数。

这就是您想要做的(伪代码)吗?

search(int x, node* current)
if node == NULL return false
else
if node->data == x return true
else
return search(x, node->right) || search(x, node->below);

编辑:您可以通过使用 search(x, root) 启动它来调用它。

关于c++ - 无法从类访问节点数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13353512/

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