微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我应该如何序列化包含每个节点中的字符串队列的特里

如何解决我应该如何序列化包含每个节点中的字符串队列的特里

我使用 8 路特里树在 C++ 中构建了一个 t9 键盘,其中每个节点看起来像 :-

const int R=8;
    
class node
    {
        queue<string> words;
        node* keys[R];
        public:
        node()
        {
            for(int i=0;i<R;keys[i++]=NULL);
        }
        queue<string> getWords() { return words; }
        void addWord(string w) { words.push(w); }
        void addKeys(node* k,int p) { keys[p]=k; }
        node* getKey(int p) { return keys[p]; }
    }*root=NULL;

队列用于存储像“fog”和“dog”这样的词,因为它们都有相同的键盘输入“1-4-2”。

现在我使用的字典只有大约 60,000 个单词,所以每次程序启动时我都会初始化 trie。但是,如果有更多的话,加载时间和内存使用量会大大增加。所以,我遇到了序列化和反序列化方法。 但我不知道如何处理每个节点中存在的字符串队列。

也欢迎任何其他稍微改变数据结构的建议。 谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。