Nav*_*K N 8 c serialization persistence trie
我有一个trie我用来做一些字符串处理.我有一个简单的编译器,它trie从一些数据生成.生成后,我trie不会在运行时更改.
我正在寻找一种方法,我可以将trie保存在文件中并有效地加载它.我已经看过sqllite了解它们是如何持久的,b-tree但它们的文件格式看起来有点先进,我可能不需要所有这些.
如果有人可以提供一些想法来坚持和阅读,那将会很有帮助trie.我用C编程
假设您的整个数据结构适合内存,递归序列化方法是最简单的。Sqllite 处理不适合内存的数据结构,因此尝试复制它们的方法可能有点过分。
这是用于读取/写入节点的示例伪代码。它通过递归读取/写入子节点来工作。它没有特定于树的东西,也应该适用于其他树数据结构。
void writeNode(Node *node)
write node data to file
write node.numOfChildren to file
for each child:
writeNode(child)
Node *readNode()
Node *node = allocateNewNode()
read node data from file
read node.numOfChildren from file
for (i=0; i<node.numOfChildren; i++)
Node *child = readNode()
node.addChild(child)
Run Code Online (Sandbox Code Playgroud)