我正在创建一个二进制基数树(最长公共前缀树)。数据仅存储在叶节点中。树层次结构具有内部节点,每个内部节点具有两个子节点。子节点可以是叶节点或内部节点。叶节点和内部节点都存储对父节点的引用。
叶节点存储在一个数组中。内部节点存储在另一个数组中。根节点是内部节点数组的第一个元素
Node
{
Node* parent;
}
LNode: Node
{
data;
}
INode: Node
{
Node* leftchild;
Node* rightchild;
}
假设现在将树结构填充为内部节点数组,如果我现在选择树的任何内部节点,我如何知道内部节点的子节点是内部节点还是叶节点?为此,我想为每个子节点存储一个布尔变量,将其标记为引导节点或内部节点。但在我看来,这似乎不是一个好的解决方案。
有人能建议我更好的方法吗?