Bene, se vuoi una gerarchia, il metodo migliore che conosco si chiama "Modified Preorder Tree Traversal" che è descritto in dettaglio in questo articolo di Sitepoint , inizia circa a metà.
La principale differenza rispetto a quanto suggerito da Guss è che è un po' più performante e molto più facile recuperare solo la parte dell'albero che stai cercando.