Ответ 1
CFBinaryHeap выглядит довольно многообещающим и полезным, но это может быть не совсем то, что вы хотите, поскольку оно не является бинарным деревом поиска, а heap. Они похожи, но не одинаковы, поэтому я чувствую, что класс Core Foundation CFTree может быть немного лучше. Здесь описание из ссылки класса CFTree:
Вы используете CFTree для создания древовидных структур, которые представляют иерархические организации информации. В таких структурах каждое дерево node имеет ровно одно родительское дерево (за исключением корневого дерева, у которого нет родителя) и может иметь несколько дочерних элементов.
Если вам не нравится C (Core Foundation - C, а не Objective-C), вы можете использовать библиотеку JKPTree, которая является Objective-C оболочкой CFTree. Вы можете скачать его здесь.
UPDATE:
Я просто нашел другую библиотеку под названием CHDataStructures, которая упрощает создание широкого спектра структур данных. Он поддерживает следующие структуры данных (и многие другие не включенные в список):
- Дерево AVL
- Абстрактное дерево двоичного поиска
- Дерево Андерссон
- Связанный список
- Дерево поиска
- Красное Черное дерево
- Несбалансированное дерево
- Queue
-
Heap
Вы можете скачать CHDataStructures здесь.