Ho un problema con l'algoritmo. Semplificheremo il problema, perché la maggior parte di ciò di cui ho a che fare non ha nulla a che fare con l'algoritmo di cui ho bisogno.
Fondamentalmente, ho una lista di oggetti che hanno ciascuno proprietà. Diciamo per semplicità che si trattava di una semplice struttura o di un altro tipo di dati semplice contenente un ID stringa e una serie di stringhe che sono le sue proprietà. Le proprietà possono essere cose come "strumento", "arma", "cibo", ecc.
Quello che devo fare è trasformare questo elenco di oggetti in un albero, dove le proprietà più comuni vanno in primo piano e quelle meno comuni in fondo. È un po 'più complesso di quello, in realtà. Ad esempio, supponiamo di avere:
- Quattro oggetti con solo la proprietà "arma".
- Sei oggetti con una proprietà "strumento" e "arma".
- Due elementi con una proprietà "cibo" e "frutto".
- Un oggetto con una proprietà "tool".
Se dovessi trasformare questo nell'albero che voglio, sarebbe simile a questo:
-
weapon
(poiché ci sono dieci elementi che hanno la proprietà dell'arma)-
tool
(poiché ci sono sei elementi con le proprietà dello strumento e dell'arma)
-
-
%codice%
-
food
-
-
fruit
È semplice da fare a mano, ma non riesco a spiegarmi come metterlo in forma di programma. Qualche aiuto?