OPS e Alberi genealogici

La seguente figura rappresenta un albero genealogico che contiene i nodi a, b, c, d, e, f, g, h, i, j, k.
Gli alberi di questo tipo possono essere descritti con un insieme di termini del tipo:
arco(<genitore>, <figlio>)
.
In tal modo, l’albero sopra riportato è descritto dal seguente insieme di termini:
arco(b, e)
arco(b, f)
arco(a, b)
arco(a, c)
arco(c, g)
arco(a, d)
arco(d, h)
arco(d, i)
arco(d, j)
arco(i, k)
Si ricordino i gradi di parentela: gli zii sono i fratelli del genitore, i cugini sono i figli degli zii, il nonno è il padre del padre, ecc.
Pertanto, in questo albero:
- il nodo a è nonno di 6 nipoti
[e, f, g, h, i, j]
, - il nodo k ha 2 zii
[h, j]
, - il nodo h ha 2 fratelli
[i, j]
e 3 cugini[e, f, g]
.
Il nodo a, che non ha genitore, si dice radice dell’albero; i nodi [e, f, g, h, j, k]
che non hanno figli, si dicono foglie dell’albero.
ESERCIZIO 1
Disegnare l’albero genealogico (con radice h) descritto dai seguenti termini:
arco(i, a)
arco(g, b)
arco(g, f)
arco(e, d)
arco(d, c)
arco(h, i)
arco(h, g)
arco(h, e)
Rispondere ai quesiti sotto riportati.
- Trovare la lista L1 delle foglie dell’albero, scritte in ordine alfabetico.
- Trovare la lista L2 degli zii di b, riportati in ordine alfabetico.
- Trovare la lista L3 dei cugini di f, riportati in ordine alfabetico.
- Trovare la lista L4 dei nonni presenti nell’albero, riportati in ordine alfabetico.
SOLUZIONE
La struttura dell’albero corrispondente

Risposte
- L1 = [a, b, c, f], foglie
- L2 = [e, i], zii di b
- L3 = [a, d], cugini di f
- L4 = [e, h], nonni