Как реализовать дерево avl в c ++, где каждый узел является другим деревом avl - PullRequest
0 голосов
/ 23 мая 2018

У меня есть файл input.txt, который содержит число вроде этого: файл input.txt

Я пытаюсь создать дерево avl, в котором каждый узел представляет собой число из первогостолбец и каждый из этих узлов указывают на другое дерево avl, содержащее числа из второго столбца. Может кто-нибудь объяснить, как реализовать это в c ++?

1 Ответ

0 голосов
/ 23 мая 2018

Реализуйте это, как если бы вы использовали целочисленный узел:

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

В дереве вам необходимо разделить поля ключа, значения и ссылки.Ключ - это то, что вы используете для упорядочивания узлов.Значение это данные.

Значение не имеет значения.Это может быть std::vector или std::map или отсутствует.Узлы вообще не копируются, меняются только ссылки.Однако, если копируется узел, копируются поля ключа и значения.

Помните, что при организации узлов меняются только поля ссылок.Ключ используется для определения порядка.

...