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