如何在 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::vectorstd::map 或缺失。节点一般不会被复制,只有links改变。但是,如果复制节点,则键和值字段都会被复制。

请记住,在组织节点时,只有 link 字段会发生变化。密钥用于确定顺序。