///<summary>Преобразует объект подробного решения в ///html строку</summary> public string ToHtml(StepByStepNTreeNode sbs) { // у нас корень дерева и его child Nodes // на самом деле находятся на одном уровне => // преобразуем корень отдельно: string res = SingleStepToHtml(sbs.Cmnts, sbs.Expr); // теперь проходим по всем потомкам данного // узла и преобразуем их: for (int i = 0; i < sbs.ChildNodes.Count; i++) { res += ToHtmlInner(sbs.ChildNodes[i]); } // возвращаем результат: return(res); }
///<summary>Рекурсивная функция для преобразования всех внутренних ///шагов в html формат</summary> string ToHtmlInner(StepByStepNTreeNode sbs) { // результат: string res = ""; // будем обходить дерево снизу => // "забуряемся" вниз дерева: for (int i = 0; i < sbs.ChildNodes.Count; i++) { // получается childNodes - это вложенные решения: res += "<div class='inner-step'>"; res += ToHtmlInner(sbs.ChildNodes[i]); res += "</div>"; } // тут, получается мы уже в самом низу дерева // больше нет никаких потомков => начинаем обработку // текущего узла: res += SingleStepToHtml(sbs.Cmnts, sbs.Expr); // возвращаем результат: return(res); }