Обход не бинарного дерева
Дано дерево задач с одним корнем. Узлами дерева являются группы задач, листьми - сами задачи. Внутри группы могут содержаться либо другие группы, либо задачи, но не то и другое одновременно. Каждый элемент дерева имеет уникальный идентификатор id (неотрицательное целое число) и название name (строка). Дополнительно задачи имеют приоритет priority (неотрицательное целое число), а группы задач приоритета не имеют.
static Node tasks =
group(0, "String",
group(1, "String",
task(2, "String", 1),
task(3, "String", 4),
task(4, "String", 2)),
group(5, "String6",
group(6, "String",
task(7, "String", 3),
task(8, "String", 6)),
group(9, "String3",
task(10, "String", 3),
task(11, "String", 3))),
group(12, "String"));
Как сделать Обход дерева?