gpt4 book ai didi

c++ - 这个类真正做什么?

转载 作者:太空宇宙 更新时间:2023-11-04 15:51:02 25 4
gpt4 key购买 nike

我正在做书中的一个问题,要求我为具有以下变量的类编写构造函数和复制控制成员。有人可以给出此类有用的场景/示例吗?主要功能中可能有一些代码?我感到困惑的部分是为什么它需要左侧的 TreeNode* 和右侧的 TreeNode*。我想不出它们的用途。

#include <iostream>
#include <string>
using namespace std;
class TreeNode
{
public:
//constructor
TreeNode(const string& s, const int& n, const TreeNode& lm, const TreeNode& rm):
value(s), count(n), left(new TreeNode(lm)), right(new TreeNode(rm)) {}
//copy-constructor
TreeNode(const TreeNode& m): value(m.value), count(m.count), left(new TreeNode(*m.left)), right(new TreeNode(*m.right)) {}
//assignment operator
TreeNode& operator=(const TreeNode& m)
{
value = m.value;
count = m.count;
*left = *m.left;
*right = *m.right;
return *this;
}
//destructor
~TreeNode()
{
delete left;
delete right;
}
private:
string value;
int count;
TreeNode *left;
TreeNode *right;
};
int main ()
{
return 0;
}

最佳答案

您可以使用此类来存储二叉树中的元素(请参阅 http://en.wikipedia.org/wiki/Binary_tree),在这种情况下,左右成员可能有意义。

例如,二叉树用于以有序方式存储数据。虽然插入元素的成本可能很高,但查找元素的速度非常快,复杂度为 O(log n)。

关于c++ - 这个类真正做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8245263/

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