Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何知道它是否';在2-3树中是2节点还是3节点?_C++_Tree_2 3 Tree - Fatal编程技术网

C++ 如何知道它是否';在2-3树中是2节点还是3节点?

C++ 如何知道它是否';在2-3树中是2节点还是3节点?,c++,tree,2-3-tree,C++,Tree,2 3 Tree,我有一个二元搜索树,我为节点创建了一个结构,它表示一个元素和它左边的子元素,但是,我不知道如何检查它是一个2节点,有一个元素和两个子元素,还是3节点,有两个元素和三个子元素。有人能给我一个提示吗 这是我的BNode模板类 template<class E> class BNode { public: struct Entry { E value; BNode* left; };

我有一个二元搜索树,我为节点创建了一个结构,它表示一个元素和它左边的子元素,但是,我不知道如何检查它是一个2节点,有一个元素和两个子元素,还是3节点,有两个元素和三个子元素。有人能给我一个提示吗

这是我的BNode模板类

template<class E>
class BNode
{
    public:
        struct Entry
        {
            E value;
            BNode* left;
        };
        bool IsThree();

    private:
        bool _three;
        Entry _first, _second;
        BNode* _right;
};

template<class E>
bool BNode<E>::IsThree()
{
// 

}
模板
B类节点
{
公众:
结构条目
{
E值;
b节点*左;
};
布尔伊斯特雷();
私人:
布尔三;
第一个输入,第二个输入;
b节点*(右);
};
模板
boolbnode::IsThree()
{
// 
}

每个节点有三个子节点的二元搜索树?据我所知,它是一个2-3树,显然(?)您需要检查是否有2个或3个非空的BNode指针。也就是说,勾选“第一左”、“第二左”和“右”。@KerrekSB:我查过了,我不能在那里放一个新的标签2-3树,除非我至少有1500个声誉:(@HoangMinh好的,是的。如果它只有两个孩子,那么将三个指针中的一个设置为NULL。这就是测试。你理解指针吗?你知道NULL是什么吗?很明显,这就是你需要做的。