Подскажите с задачей, поделитесь решением у кого есть

Иерархия должностей в некоторой организации образует древовидную структуру. Каждый работник, однозначно характеризующийся

уникальным именем, имеет несколько подчиненных. Определите

тип данных, представляющий такую иерархию и опишите следующие функции:

1) getSubordinate, возвращающую список подчиненных указанного работника.

2) getAllSubordinate, возвращающую список всех подчиненных данного работника, включая косвенных.

3) getBoss, возвращающую начальника указанного работника.

4) getList, возвращающую список пар, первым элементом которых является имя работника, а вторым — количество его

подчиненных (включая косвенных).