Каким алгоритмом распарсить данные категории товаров и превратить их в древовидную структуру?

Битый час мучаюсь, никак не могу придумать как превратить эту структуру в нормальный рабочий вид

<item>
		<ID>
		</ID>
		<name>
		</name>
		<about>
		</about>
		<price>
		</price>
		<manufacture>
		</manufacture>

		<category2>
		</category2>

		<category1>
		</category1>

		<category0>
		</category0>
	</item>
    <item>
		<ID>
		</ID>
		<name>
		</name>
		<about>
		</about>
		<price>
		</price>
		<manufacture>
		</manufacture>

		<category2>
		</category2>

		<category1>
		</category1>

		<category0>
		</category0>
	</item>
......


Проблема в том, что категории товара не вложенные и не имеют айдишников, как превратить это в дерево без понятия - весь мозг сломал. Сам контент категорий предполагает именно дерево вида
category0
----category1
--------category2
  • Вопрос задан
  • 225 просмотров
Решения вопроса 1
@mik222
Префиксное дерево. Сплит по категории. Можно сделать на хешах.
В результате получите ваше дерево.
Префиксное дерево: https://en.wikipedia.org/wiki/Trie
--------
Псевдокод
Для каждого <item>:
  Взять категории по порядку. [cat1,cat2,cat3]
  Уложить этот путь в trie. 
  В качестве листа, указать все остальные<не категории> элементы item
Готово

-------
Если у вас есть дубликаты характеризующих атрибутов для элементов Например: не
ID name а pbbpp. То используйте алгоритм Недельман Вунша по выравниванию строк с бэктрекингом. Токинизируете по характеризующим элементам.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы