Получение информации из узлов дерева - PullRequest
2 голосов
/ 20 мая 2010

Я работаю со структурой данных дерева и пытаюсь найти способ вычислить информацию, которую я могу получить из узлов дерева.

Мне интересно, существуют ли какие-либо существующие методы, которые могут придавать более высокую числовую важность узлу, который встречается реже на более низком уровне (расстояние от корня дерева), чем те же узлы, которые появляются на более высоком уровне и высокой частоте.

Чтобы привести пример, я хочу придать больше значения ноду Book, на уровне 2, появившемся один раз, затем на уровне 3 появляется трижды.

Буду признателен за любые предложения / указатели на методы, которые достигают чего-то подобного.

Спасибо

Prateek

Ответы [ 2 ]

1 голос
/ 20 мая 2010

Это зависит от того, какое значение вы хотите придать ему на каждом уровне.

Просто умножьте на число, которое уменьшается при движении вниз по уровням дерева. Например, n_nodes * 1/(3^n), где n - уровень дерева. Таким образом, узел на уровне 2 получает значение 1/4, а 3 узла на уровне 3 получают значение 1/9. Таким образом, отдельный узел на уровне 2 является более значимым.

Настройте знаменатель по своему вкусу. Пока он увеличивается с n, он будет придавать большее значение узлам выше в дереве.

1 голос
/ 20 мая 2010

Одна метрика, о которой я только что подумал, такова: для метки k пусть ее «значением» будет сумма уровней, на которых она появляется. Итак, если он появляется в корне и в левом дочернем элементе корня, пусть его значение равно 1.

Тогда ваши самые "важные" метки - это те, которые имеют наименьшее значение.

РЕДАКТИРОВАТЬ: Это сделает корень более важным, чем ярлык его детей, даже если они оба одинаковы. Таким образом, некоторое масштабирование по количеству вхождений может быть в порядке.

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