gpt4 book ai didi

c++ - 需要通过函数指针访问类对象 - 二叉搜索树类创建相关

转载 作者:行者123 更新时间:2023-11-30 03:12:50 25 4
gpt4 key购买 nike

使用递归创建二叉搜索树的遍历。

void inOrder(void (*inOrderPtr)(T&)) 
{
if(this->left != NULL)
inOrder((*inOrderPtr)(this->left));
inOrderPtr(this->data);
if(this->right != NULL)
inOrder((*inOrderPtr)(this->right));
}

这是函数。现在这显然是错误的。这个函数是这样调用的:

first.inOrder(print_vals);

首先是对象,print vals 只是一个函数,打印对象中的数据是什么。每个对象都有三个值,数据、左和右。我如何使用该函数实际访问这些项目?

最佳答案

看起来对 inOrderPtr(this->data) 的调用只是将树节点的 data 成员传递给 print_vals功能。如果您想访问 leftright 元素,请使用 inOrderPtr(*this)。您必须更改各种声明才能编译,例如 inOrderPtrprint_vals 的声明。如果没有看到您的其余代码,很难说出您需要将它们更改为什么。

另一方面,在我看来,您可能希望更像这样编写递归调用:

this->left->inOrder(inOrderPtr);

不过,我正在对您的实现做出假设。

关于c++ - 需要通过函数指针访问类对象 - 二叉搜索树类创建相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/206498/

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