如何在c ++中实现avl树,每个节点都是另一个avl树

时间:2018-05-23 17:19:41

标签: c++ avl-tree

我有一个input.txt文件,其中包含如下数字:input.txt file

我正在尝试制作一个avl树,其中每个节点都是第一列的数字,每个节点都指向另一个包含第二列数字的avl树。有人可以解释如何在c ++中实现这个吗? / p>

1 个答案:

答案 0 :(得分:0)

像使用整数节点一样实现它:

struct AVL_node
{
  bool color;
  int key;
  AVL_Tree value;
  AVL_Node * left_subtree;
  AVL_Node * right_subtree;
};

在树中,您需要分隔键,值和链接字段。关键是您用于订购节点的内容。值是数据。

价值没有区别。它可能是std::vectorstd::map或遗失。通常不复制节点,只更改链接。但是,如果复制节点,则会复制键和值字段。

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