Есть ли у поиска структуры данных дерева Cocoa Touch?

голоса
11

Я смотрел на это на Google и прочитать запись Коллекции в документации SDK, и ничего не дал. Есть ли BST (любой из его вариантов) реализации доступны из коробки с IOS SDK?

Кажется странным, что столь основной будет отсутствовать основной платформы разработки. Является ли их реализация хэш только что волшебный? Или разработчики предположим, что никто не собирается делать вставки / удаления на вещи, которые имеют порядок?

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

Задан 08/10/2011 в 01:56
источник пользователем
На других языках...                            


4 ответов

голоса
0

CoreFoundation имеет CFBinaryHeap тип , который вы можете использовать. Там нет Obj-C оболочки для него, но немного C никогда не повредит никому.

Ответил 08/10/2011 в 01:59
источник пользователем

голоса
6

CFBinaryHeap выглядит довольно перспективным и полезным, но это может быть не совсем то , что вы хотите, так как это на самом деле не бинарное дерево , а куча . Они похожи, но не то же самое, так что я чувствую , что основные основы в CFTree класс может быть немного лучше. Вот описание от референсного класса CFTree:

Вы можете использовать CFTree создавать древовидные структуры, которые представляют собой иерархические организации информации. В таких структурах, каждый узел дерева имеет ровно один родительское дерево и может иметь несколько детей (для корневого дерева, которое не имеет родителя за исключением).

Если вы не знакомы с C (основной фонд является C, не Objective-C), вы можете использовать библиотеку JKPTree , которая является Objective-C оберткой CFTree. Вы можете скачать его здесь .

ОБНОВИТЬ:

Я просто нашел другую библиотеку под названием CHDataStructures , что упрощает создание самых разнообразных структур данных. Он поддерживает следующие структуры данных (и многие другие незарегистрированные из них):

  • AVL дерева
  • Абстрактный Двоичное дерево
  • Andersson Tree
  • Связанный список
  • Поиск Дерево
  • Красное Черное Дерево
  • Несбалансированное Дерево
  • Очередь
  • отвал

    Вы можете скачать CHDataStructures здесь .

Ответил 22/08/2012 в 05:07
источник пользователем

голоса
0

Вы можете использовать std::setиз стандартной библиотеки C ++, если имя файла с .mmрасширением (Objective-C ++ режим).

Ответил 22/01/2013 в 02:28
источник пользователем

голоса
0

Это не Cocoa Touch, а Objective-C GNU библиотека коллекции имеет красно-черное дерево и абстрактное бинарное дерево , а также кучу других не дерево коллекции вещей.

Ответил 26/02/2015 в 02:29
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more