Почему не там никакое Дерево <T> класс в.NET?

С помощью bash, wget и lynx:

#!/bin/bash
read -e -p "Youtube address? " address
page=$(wget "$address" -O - 2>/dev/null)
title=$(echo "$page" | grep "   - ")
title="$(lynx --dump -force-html <(echo "<html><body>
$title
</body></html>")| grep "  - ")"
title="${title/*   - /}"
echo "$title"
82
задан LBushkin 2 June 2009 в 21:54
поделиться

8 ответов

Вы правы, в BCL ничего нет. Я подозреваю, что это связано с тем, что выбор использования дерева обычно является деталью реализации, а в противном случае - нетрадиционным способом доступа к данным. То есть вы не t скажем, "двоичный поиск элемента № 37"; вместо этого вы говорите: «Дайте мне элемент № 37»

Но вы смотрели C5 ? Это очень удобно, и у них есть несколько реализаций дерева ( 1 , 2 , 3 ).

29
ответ дан 24 November 2019 в 09:13
поделиться

Вы можете определить свой собственный:

public class MyTree<K, V> : Dictionary<K, MyTree<K, V>>
{
    public V Value { get; set; }
}

Или без ключа:

public class MyTree<V> : HashSet<MyTree<V>>
{
    public V Value { get; set; }
}
67
ответ дан 24 November 2019 в 09:13
поделиться

Что бы вы хотели от такой реализации?

Двоичное дерево? Красно-черный? Радиксное дерево? B-дерево? R-дерево? R * -tree?

Дерево - это больше шаблон, чем структура данных, и они, как правило, используются там, где имеет значение производительность (поэтому детали реализации, вероятно, тоже имеют значение). Если бы BCL включал в себя какой-то древовидный класс, вам все равно нужно было бы свернуть свой собственный

36
ответ дан 24 November 2019 в 09:13
поделиться

Я считаю, что SortedDictionary как вставка log (n), характеристики извлечения, которые можно ожидать от структуры данных дерева.

http://msdn.microsoft.com/en-us/library/f7fta44c (VS.80) .aspx

15
ответ дан 24 November 2019 в 09:13
поделиться

Нет, в BCL нет никакого типа " Tree -like" (что меня тоже всегда озадачивало), но здесь - хорошая статья , которая проведет вас через реализацию вашей собственной на C #.

Думаю, вы могли бы привести аргумент, что древовидные структуры данных реже используются в приложениях, для которых обычно используется .NET. (бизнес-приложения, приложения для перемещения данных и т. д.). Тем не менее, я согласен с вами, странно, что BCL вообще не имеет реализации.

8
ответ дан 24 November 2019 в 09:13
поделиться

Эта серия статей оказалась для меня полезной, когда мне пришлось писать свои собственные, особенно части 3 и 4.

Обширное исследование структур данных

1
ответ дан 24 November 2019 в 09:13
поделиться

SortedSet реализован как двоичное дерево поиска ref . SortedDictionary внутренне использует SortedSet , поэтому это тоже двоичное дерево поиска ref .

12
ответ дан 24 November 2019 в 09:13
поделиться

Там есть TreeNode , который вы можете использовать. Он не является общим и скрытым в формах Windows и используется с элементом управления treeview, но вы можете использовать его и в другом месте.

-5
ответ дан 24 November 2019 в 09:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: