Обход не бинарного дерева - C#
Формулировка задачи:
есть вот такое дерево
Предположим, что мы уже построили его, какие есть способы его обхода, кто-нибудь может подсказать ? Заранее благодарю
public class Node // узел { public string data; public List<Node> childs; public Node(string data) { this.data = data; childs = new List<Node>(); }
Решение задачи: «Обход не бинарного дерева»
textual
Листинг программы
public class TreeViewConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { var list = value as List<Node>; var col = new List<TreeViewItem>(); CreateTree(list, col); return col; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return value; //throw new NotImplementedException(); } private void CreateTree(List<Node> list, dynamic ItemsSource) { foreach (var node in list) { var newTV = new TreeViewItem() { Header = node.Data }; if (node.childs.Count > 0) { CreateTree(node.childs, newTV.Items); ItemsSource.Add(newTV); } else { ItemsSource.Add(newTV); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д