Не программируя в течение долгого, долгого времени (20+ лет), я пытаюсь вернуться к нему. Моя первая реальная попытка - это Scrabble/Words With Friends solver/cheater (выберите свое определение). Я построил неплохой движок, но он решает проблемы с помощью грубой силы вместо эффективности или элегантности. После долгих исследований было довольно ясно, что лучшим ответом на эту проблему является DAWG или CDWAG. Я нашел несколько реализаций C там и смог использовать их (время поиска увеличилось с 1,5 до 0,00 для тех же наборов данных).
Однако, я пытаюсь понять, как это сделать в чистом Objective-C. При этом я также пытаюсь сделать его ARC совместимым. И достаточно для iPhone. Я посмотрел совсем немного и нашел несколько библиотек структуры данных (т.е. CHDataStructures), но они в основном C/Objective-C гибридов или они не совместимы с ARC. Они очень сильно полагаются на структуры и внедряют объекты внутри структур. ARC на самом деле не заботится об этом.
Итак - мой вопрос (извините, и я понимаю, было ли это tl; dr, и если он кажется полностью новым вопросом - просто еще не может окунуться в этот объект), как вы программируете классические структуры данных (деревья, и т.д.) с нуля в Objective-C? Я не хочу полагаться на NS [Mutable] {Array, Set и т.д.}. Кто-нибудь имеет простую/базовую реализацию дерева или что-то в этом роде, из которого я могу свернуть, пока я иду, создаю свой DAWG?