Реализовать вывод данных в консоль в виде дерева - 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];
        }
    }
}

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


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

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

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