Валера Программист: честно говоря код писать лень, но алгоритм могу описать.
1) Выбрали из базы все элементы меню. открыли список
2) Получили элемент - вывели, смотрим есть ли у него детеныши, если нет - закрыли список, если есть определяем их количество, и бежим по ним (возвращаемся к п2).