С помощью 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"
Вы правы, в BCL ничего нет. Я подозреваю, что это связано с тем, что выбор использования дерева обычно является деталью реализации, а в противном случае - нетрадиционным способом доступа к данным. То есть вы не t скажем, "двоичный поиск элемента № 37"; вместо этого вы говорите: «Дайте мне элемент № 37»
Но вы смотрели C5 ? Это очень удобно, и у них есть несколько реализаций дерева ( 1 , 2 , 3 ).
Вы можете определить свой собственный:
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; }
}
Что бы вы хотели от такой реализации?
Двоичное дерево? Красно-черный? Радиксное дерево? B-дерево? R-дерево? R * -tree?
Дерево - это больше шаблон, чем структура данных, и они, как правило, используются там, где имеет значение производительность (поэтому детали реализации, вероятно, тоже имеют значение). Если бы BCL включал в себя какой-то древовидный класс, вам все равно нужно было бы свернуть свой собственный
Я считаю, что SortedDictionary
как вставка log (n), характеристики извлечения, которые можно ожидать от структуры данных дерева.
http://msdn.microsoft.com/en-us/library/f7fta44c (VS.80) .aspx
Нет, в BCL нет никакого типа " Tree
-like" (что меня тоже всегда озадачивало), но здесь - хорошая статья , которая проведет вас через реализацию вашей собственной на C #.
Думаю, вы могли бы привести аргумент, что древовидные структуры данных реже используются в приложениях, для которых обычно используется .NET. (бизнес-приложения, приложения для перемещения данных и т. д.). Тем не менее, я согласен с вами, странно, что BCL вообще не имеет реализации.
Эта серия статей оказалась для меня полезной, когда мне пришлось писать свои собственные, особенно части 3 и 4.
SortedSet
реализован как двоичное дерево поиска ref . SortedDictionary
внутренне использует SortedSet
, поэтому это тоже двоичное дерево поиска ref .
Там есть TreeNode , который вы можете использовать. Он не является общим и скрытым в формах Windows и используется с элементом управления treeview, но вы можете использовать его и в другом месте.