Di recente ho scoperto la struttura dei dati del roseto, ma appena uscendo da una data
definizione di Haskell e dalla sua minuscola descrizione di Wikipedia , ho qualche problema a capire quali applicazioni potrebbe avere un roseto.
Per riferimento, la data
definizione di Haskell :
data RoseTree a = RoseTree a [RoseTree a]
Per chi non ha familiarità con Haskell - è una definizione di tipo di dati ricorsivo con un tipo arbitrario a
, in cui il costruttore del tipo è fornito con un letterale di tipo a
seguito da un elenco di tipi facoltativamente vuoto RoseTree
sullo stesso tipo a
.
Come la vedo:
Questa struttura di dati non è ordinata per impostazione predefinita (anche se presumo che la maggior parte delle applicazioni pratiche implementa una qualche forma di ordinamento per la ricerca)
La struttura dei dati non impone un numero fisso di nodi per livello in nessun punto, tranne la radice globale, che deve avere un singolo nodo
Data la minima quantità di informazioni, ho difficoltà a capire quando si potrebbe usare questo tipo di albero.
Oltre alla domanda nel titolo, se la ricerca è effettivamente implementata nella maggior parte delle applicazioni di un albero di rose, come si fa?