Построить иерархию из наборов атрибутов - PullRequest
1 голос
/ 21 декабря 2011

У меня проблемы с тем, что я считаю довольно простым.Тем не менее, я не могу ничего найти.Возможно, потому что я не задаю правильный вопрос.

Допустим, у меня есть три (потенциально избыточных) набора данных A, B, C = (a, b, c), (a, b, d), (a, e, f).

Мне нужно, чтобы какой-то инструмент предложил для меня иерархию.

Примерно так:

      (a)
   (b)    (ef)   
(c)   (d) 

На самом делегораздо больше наборов и МНОЖЕСТВО атрибутов в каждом наборе, но все они тесно связаны, и я не хочу вручную находить и строить иерархию.

1 Ответ

2 голосов
/ 21 декабря 2011

Если вы хотите построить иерархию из простых кортежей, идите и создайте из них дерево (или, скорее, лес)!

В вашем случае дерево будет выглядеть как

      c
    /
   b - d
  /
a - e -f

Алгоритм тривиален:

  • выберите первый элемент из кортежа
  • найдите верхний элемент в лесу с этим значением (или создайте его, если он не найден)
  • выберите следующее значение из кортежа
  • найдите соответствующий элемент среди дочерних элементов ранее найденного узла.
  • повторяйте до PROFIT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...