这门课到底是做什么的

what does this class really do?

本文关键字:什么      更新时间:2023-10-16

我正在做书中的一个问题,要求我为具有以下变量的类编写构造函数和复制控制成员。有人能给我一个场景/例子,这个类是有用的?可能的一些代码在主要功能?我感到困惑的部分是为什么它需要左边的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)。