R: как инициализировать пустое двоичное дерево? - PullRequest
2 голосов
/ 05 мая 2020

Я хочу инициализировать объект, имеющий структуру полного двоичного дерева, чтобы я мог использовать его для хранения значений узлов. Предположим, я задаю дерево с глубиной d = 3, тогда у меня будет 1 root узел на уровне 1, 2 узла на уровне 2 и 4 узла на уровне 3.

enter image description here

Будет ли список хорошим способом сохранить это? Может быть, массив, если это лучше в вычислительном отношении? Я думал, что потенциальный список будет выглядеть примерно так для d = 3:

>empty_tree
[[1]]
[1]

[[2]]
[1]
[2]

[[3]]
[1]
[2]
[3]
[4]

1 Ответ

1 голос
/ 05 мая 2020

Я не уверен, нужно ли вам что-то вроде ниже

empty_tree <- function(d) sapply(1:d, function(k) replicate(2**(k-1),c()))

такое, что

> empty_tree(2)
[[1]]
[[1]][[1]]
NULL


[[2]]
[[2]][[1]]
NULL

[[2]][[2]]
NULL


> empty_tree(3)
[[1]]
[[1]][[1]]
NULL


[[2]]
[[2]][[1]]
NULL

[[2]][[2]]
NULL


[[3]]
[[3]][[1]]
NULL

[[3]][[2]]
NULL

[[3]][[3]]
NULL

[[3]][[4]]
NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...