Процедуры и функции: Описать функцию, возвращающую строку, сформированную на базе символов, встречающихся в каждой строке дерева - C#
Формулировка задачи:
Создать строковое двоичное дерево. Описать функцию, возвращающую строку, сформированную на базе символов, встречающихся в каждой строке дерева. В программе использовать подпрограммы.
Решение задачи: «Процедуры и функции: Описать функцию, возвращающую строку, сформированную на базе символов, встречающихся в каждой строке дерева»
textual
Листинг программы
class Node { public String Name { get; set; } public Node[] Nodes=new Node[2]; } static String[] init = { "node", "1level", "1level", "2level", "2level", "2level", "2level","3level","3level" }; //init data static int indexInit; static int maxlevel; static Node tree = null; //result tree static void FillTree() { maxlevel = (int)Math.Ceiling(Math.Log((double)init.Length, 2D))+1;//max levels result tree int level = 0; FillNode(ref tree, ref level); } static void FillNode(ref Node tree, ref int level) { level++; if (indexInit == init.Length) return; tree = new Node(); tree.Name = init[indexInit++]; if (level < maxlevel) { for (int i = 0; i < tree.Nodes.Length; i++) { FillNode(ref tree.Nodes[i], ref level); level--; }; }; } static void GetStrings(Node node, ref String result) { result += node.Name+" "; foreach (Node n in node.Nodes) if (n != null) { GetStrings(n, ref result); } } static void Main(string[] args) { FillTree(); String str=String.Empty; GetStrings(tree,ref str); Console.WriteLine(str); //str - result string Console.ReadKey(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д