Реализовать вывод данных в консоль в виде дерева - C#
Формулировка задачи:
Напишите код. Если нет времени, буду очень благодарен если подскажете алгоритм.
Задание 1.
Дан массив, записанный в отдельном файле
Avto Nissan Almera
Avto Nissan Teana
Avto Lada Kalina
Avto Lada Priora
Avto Toyota Corolla
Avto Toyota Camry
Avto Toyota Rav4
Avto Toyota Avensis
Moto Yamaha YZF-R6
Moto Yamaha YZF-R1
Moto Suzuki V-Storm
Airplane Boeing 747
Airplane Airbus A310
Airplane Airbus A320
Реализовать вывод данных в консоль в виде дерева.
Avto
_______________Nissan
______________________________Almera
______________________________Teana
Решение задачи: «Реализовать вывод данных в консоль в виде дерева»
textual
Листинг программы
using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace Tree { class Program { static void Main(string[] args) { var lines = File.ReadLines("input.txt"); var tree = new Tree(); foreach (var line in lines) { tree.Add(line); } tree.WriteAllLines(); } } class Tree { private Node tree; public Tree() { tree = new Node(""); } public void Add(string line) { var node = tree; var values = line.Split(); foreach (var value in values) { node = node.GetNode(value); } } public void WriteAllLines() { WriteAllLines(tree, ""); } private void WriteAllLines(Node node, string prefix) { if (!node.Childs.Any()) return; foreach (var child in node.Childs.Values) { Console.WriteLine(prefix + child.Value); WriteAllLines(child, prefix + "<br>"); } } } public class Node { public Dictionary<string, Node> Childs { get; } public string Value { get; } public Node(string value) { Value = value; Childs = new Dictionary<string, Node>(); } public Node GetNode(string value) { if (!Childs.ContainsKey(value)) Childs.Add(value, new Node(value)); return Childs[value]; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д