Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Бинарное дерево


Автор: rukudias 12.3.2009, 01:18
Привет Всем!
Какой класс в System.Collections или System.Collections.Generic представляет собой бинарное дерево? 

Автор: Partizan 12.3.2009, 01:23
rukudias, никакой...насколько мне известно класса, который бы представлял из себя бинарное дерево в .NET нет.

Автор: rukudias 12.3.2009, 01:28
LinkedList<T> - связаный список
Stack,Queue - последовательные списки
а все остальное получается динамические массивы что-ли?

Автор: Partizan 12.3.2009, 01:39
rukudias, какие динамические массивы? Классы из этих пространств имён представляют какие-либо структуры данных...но среди них бинарного дерева нет...

Автор: rukudias 12.3.2009, 01:42
Partizan я понялчто бин дерева среди них нет

Просто созрел вопрос как реализованы такие классы как ArrayList List<T> словари те что
какие структуры данных представляют собой эти классы?

Добавлено через 4 минуты и 34 секунды
Походу словири это hashtable

Добавлено через 9 минут и 27 секунд
О!
SortedDictionary<Tkey,Tvalue>  и есть бинарное дерево
"C# платформа .Net 3.0 для профecсионалов" стр 319

Автор: Partizan 12.3.2009, 02:02
rukudias, внутри-то оно скорее всего так и есть...но внешне - это совсем не бинарное дерево...

Автор: lam0x7C4 12.3.2009, 03:41
ArrayList и List<T> внутри реализованы через массивы.
Чтобы убедиться, посмотрите в дебаге на их приватные поля екземпляров ArrayList'а или List<T>'а.

Автор: -Mikle- 13.3.2009, 02:36
Цитата(lam0x7C4 @  12.3.2009,  06:41 Найти цитируемый пост)
Чтобы убедиться, посмотрите в дебаге на их приватные поля екземпляров ArrayList'а или List<T>'а.

.NET Reflector друзья, расскажет больше  smile . Рекомендую.

Автор: diadiavova 13.3.2009, 11:31
Цитата(rukudias @  12.3.2009,  01:18 Найти цитируемый пост)
Какой класс в System.Collections или System.Collections.Generic представляет собой бинарное дерево?  

А почему дерево надо искать среди коллекций? Нужно оно тебе -  реализуй сам. Простейший пример
Код

    public class BinaryNode
    {
        public Object Data {get; set;}
        public BinaryNode Left {get; set;}
        public BinaryNode Right {get; set;}
    }

И строй, что тебе нужно, при необходимости добавь нужные функции и прочее.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)