Почему переменная root в двоичном дереве является указателем узла, а не самого узла? - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь реализовать двоичное дерево в C ++ и изучал некоторые учебники в Интернете, чтобы узнать о нем больше.

Я заметил, что во всех руководствах упоминается, что переменная root двоичного дерева должна быть указатель на узел root, а не сам узел. Пример кода:

struct Node {
  int data;
  Node *left, *right;
};

class BinaryTree {
  private:
     Node *root;
};

Почему бы вместо этого не сделать root переменную Node root, а когда я вставляю узел в двоичное дерево, я могу присвоить значения root?

1 Ответ

0 голосов
/ 28 января 2020

Поскольку узел root также является узлом, его можно удалить. Если это не указатель, вам придется начать копировать узлы, а не просто перемещать указатели.

Это также может быть nullptr, если дерево пусто

...