在很长很长时间(20 多年)没有编程之后,我正试图重新开始。我的第一次真正尝试是拼字游戏/Words With Friends 求解器/作弊器(选择你的定义)。我已经构建了一个非常好的引擎,但它通过蛮力而不是效率或优雅来解决问题。经过大量研究,很明显,这个问题的最佳答案是 DAWG 或 CDWAG。我在那里找到了一些 C 实现并且能够利用它们(对于相同的数据集,搜索时间从 1.5 秒变为 0.005 秒)。
但是,我试图弄清楚如何在纯 Objective-C 中做到这一点。在那,我也在努力使其符合ARC。并且对于 iPhone 来说足够高效。我看了很多,发现了几个数据结构库(即CHDataStructures),但它们大多是 C/Objective-C 混合体,或者它们不符合 ARC。它们非常依赖结构并将对象嵌入到结构中。ARC并不真正关心这一点。
所以 - 我的问题是(对不起,我明白这是否是 tl;博士,如果这似乎完全是一个新问题 - 只是无法理解这个对象的东西)你如何编程经典数据结构(树等)在 Objective-C 中从头开始?我不想依赖 NS[Mutable]{Array,Set,etc}。有没有人有一个简单/基本的树或类似的东西,我可以在创建我的 DAWG 时使用?