我正在编写一个iPhone应用程序,允许用户输入食物并获得食物所含卡路里的数量。我希望这个应用程序自动完成搜索查询,这样如果有人输入“oran”,弹出选项“orange”。树似乎是实现自动完成的最佳数据结构。有没有办法存储这个树,以便我的应用程序不必通过每次运行时读取XML文件来重建它?
答案 0 :(得分:0)
嗯不,你每次都需要在启动时读取树。您可以使用NSCoding
将对象树写入磁盘。但你需要以任何方式加载。
答案 1 :(得分:0)
如果你真的想要避免磁盘访问,那么要做的就是编写代码以C语法将数据打印出来作为数组,例如
struct node {
const char *name;
struct node *left_child;
struct node *right_child;
};
struct node tree[] =
{
{ "parent", tree + 1, tree + 2 },
{ "left child", NULL, NULL},
{ "right child", NULL, tree + 3 },
{ "right grandchild", NULL, NULL },
};
然后将其放入项目中的.c文件中。然后,当可执行文件加载到内存中时,它将在程序启动时加载。
这种将数据整理到头文件或c文件并将其烘焙到可执行文件中的技术在iOS上非常常见,可以快速简便地进行初始化。
编辑: 另外,正确地说,使用树来保存多个不同可能字符串的单个字符称为“trie”。