如何在 C++ 中实现一个 avl 树,每个节点都是另一个 avl 树
How to implement an avl tree in c++ with each node being another avl tree
我有一个 input.txt 文件,其中包含这样的数字:input.txt file
我正在尝试制作一棵 avl 树,其中每个节点都是第一列的数字,并且这些节点中的每一个都指向另一个包含第二列数字的 avl 树 column.Could 有人解释了如何实现这个在 C++ 中?
像使用整数节点一样实现它:
struct AVL_node
{
bool color;
int key;
AVL_Tree value;
AVL_Node * left_subtree;
AVL_Node * right_subtree;
};
在树中,需要将键、值和link字段分开。关键是您用于订购节点的内容。价值就是数据。
值没有区别。它可能是 std::vector
或 std::map
或缺失。节点一般不会被复制,只有links改变。但是,如果复制节点,则键和值字段都会被复制。
请记住,在组织节点时,只有 link 字段会发生变化。密钥用于确定顺序。
我有一个 input.txt 文件,其中包含这样的数字:input.txt file
我正在尝试制作一棵 avl 树,其中每个节点都是第一列的数字,并且这些节点中的每一个都指向另一个包含第二列数字的 avl 树 column.Could 有人解释了如何实现这个在 C++ 中?
像使用整数节点一样实现它:
struct AVL_node
{
bool color;
int key;
AVL_Tree value;
AVL_Node * left_subtree;
AVL_Node * right_subtree;
};
在树中,需要将键、值和link字段分开。关键是您用于订购节点的内容。价值就是数据。
值没有区别。它可能是 std::vector
或 std::map
或缺失。节点一般不会被复制,只有links改变。但是,如果复制节点,则键和值字段都会被复制。
请记住,在组织节点时,只有 link 字段会发生变化。密钥用于确定顺序。