Вывести древовидную структуру с помощью рекурсии - C#

Узнай цену своей работы

Формулировка задачи:

помогите разобраться с рекурсией... в C# есть массив, id | paret_id | name нужно с помощью рекурсии вывести в таком виде Петров ---Сидоров ------ Пупкин ------Медведев ---------Морозов ---Иванов ---Ульянов вот мой не правильный код =)
static void print(string[,] mas, int parent_id )
        {
             for (int i = 0; i < mas.Length; i++)
            {   
                int id = Convert.ToInt32(mas[i, 0]);
                int parent = Convert.ToInt32(mas[i, 1]);
                string name = mas[i, 2];
 
                if (parent_id == id)
                    Console.WriteLine(name);
                if (parent != 0)
                {
                    Console.Write("-");
                      print(mas, parent);
                } 
                    Console.WriteLine( name); 
            } 
        }

Решение задачи: «Вывести древовидную структуру с помощью рекурсии»

textual
Листинг программы
namespace ConsoleApplication1
{
    class Program
    {
        static string[,] patr1 = {
            {"1", "0", "Петров"},
            {"2", "1", "Сидоров"},
            {"3", "2", "Пупкин"},
            {"4", "2", "Медведев"},
            {"5", "4", "Морозов"},
            {"6", "2", "Иванов"},
            {"7", "2", "Ульянов"}};
 
 
        static void Main(string[] args)
        {
 
            for (int i = 0; i < patr1.GetLength(0); i++)
            {
                Console.WriteLine(StrokaArr(patr1[i, 1], patr1[i, 2]));
            }
            Console.ReadKey();
        }
        static public string StrokaArr(string id_patr, string strName)
        {
            if (id_patr == "0") return strName;
            else
            {
                for (int i = 0; i < patr1.GetLength(0); i++)
                {
                    string id_patr_patr = "0";
                    if (patr1[i, 0] == id_patr)
                    {
                        id_patr_patr = patr1[i, 1];
                        strName = "-" + StrokaArr(id_patr_patr, strName);
                    }
                }
            }
            return strName;
        }
    }
}

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


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

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

13   голосов , оценка 4.154 из 5
Похожие ответы