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