Реализовать вывод данных в консоль в виде дерева - 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
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5.  
  6. namespace Tree
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             var lines = File.ReadLines("input.txt");
  13.             var tree = new Tree();
  14.             foreach (var line in lines)
  15.             {
  16.                 tree.Add(line);
  17.             }
  18.             tree.WriteAllLines();
  19.         }
  20.     }
  21.  
  22.     class Tree
  23.     {
  24.         private Node tree;
  25.  
  26.         public Tree()
  27.         {
  28.             tree = new Node("");
  29.         }
  30.         public void Add(string line)
  31.         {
  32.             var node = tree;
  33.             var values = line.Split();
  34.             foreach (var value in values)
  35.             {
  36.                 node = node.GetNode(value);
  37.             }
  38.         }
  39.  
  40.         public void WriteAllLines()
  41.         {
  42.             WriteAllLines(tree, "");
  43.         }
  44.         private void WriteAllLines(Node node, string prefix)
  45.         {
  46.             if (!node.Childs.Any()) return;
  47.             foreach (var child in node.Childs.Values)
  48.             {
  49.                 Console.WriteLine(prefix + child.Value);
  50.                 WriteAllLines(child, prefix + "<br>");
  51.             }
  52.         }
  53.     }
  54.  
  55.     public class Node
  56.     {
  57.         public Dictionary<string, Node> Childs { get; }
  58.         public string Value { get; }
  59.  
  60.         public Node(string value)
  61.         {
  62.             Value = value;
  63.             Childs = new Dictionary<string, Node>();
  64.         }
  65.  
  66.         public Node GetNode(string value)
  67.         {
  68.             if (!Childs.ContainsKey(value))
  69.                 Childs.Add(value, new Node(value));
  70.             return Childs[value];
  71.         }
  72.     }
  73. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут