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