Процедуры и функции: Описать функцию, возвращающую строку, сформированную на базе символов, встречающихся в каждой строке дерева - 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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д