У меня есть следующее n-арное дерево. Значение в узлах имеет вид имена {count}. Значение счета любого узла - это количество путей, которые включают узел.Печать всех путей в n-арном дереве в соответствии с их количеством
Мне нужно напечатать все пути (от корня до листа) в дереве, пока счетчик этого узла не станет равным нулю. Когда счетчик узла равен нулю, тогда печатается только путь до его предшественника (при условии, что их количество больше 0)
6 путей для приведенного выше графика будет
3-5-1-2- 4-6
3-5-1-2
3-5-1-7
3-5-2
3-1-4
3-7
[EDIT] Пробовал следующее. Вызывается функция toString (отступ, узел) с использованием цикла, который запускает число root.count. Но не знаю, как остановиться после пути (3-5-1-2-4-6) больше нет детей. Вместо этого он печатает 3-5-1-2-4-6-7-2-1-4-7.
public String toString(String indent, MyTree node) {
String output="";
while(node.count>0){
//output = indent + node.toString() + "\n";
output = indent + node.name;
node.count--;
//if(node.count==0) break;
String childsOutput = "";
for (MyTree child : node.childs) {
childsOutput += toString(indent + " ", child);
}
return output + childsOutput;
}
return output;
}
Заранее спасибо.
Вам необходимо указать какой-либо код, показывающий, что вы пробовали, или вопрос о том, какая часть проблемы вам непонятна. Люди не собираются писать код для вас без каких-либо усилий с вашей стороны. – Travis
@Travis: Обновлен вопрос с кодом. Вы можете мне помочь. – GvanJoic