C++ 如何知道它是否';在2-3树中是2节点还是3节点?
我有一个二元搜索树,我为节点创建了一个结构,它表示一个元素和它左边的子元素,但是,我不知道如何检查它是一个2节点,有一个元素和两个子元素,还是3节点,有两个元素和三个子元素。有人能给我一个提示吗 这是我的BNode模板类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; };
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是什么吗?很明显,这就是你需要做的。