Реализовать вывод данных в консоль в виде дерева - 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];
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д