当前位置:  开发笔记 > 编程语言 > 正文

如何在C中实现Compact Directed Acyclic Word Graph(CDAWG)?

如何解决《如何在C中实现CompactDirectedAcyclicWordGraph(CDAWG)?》经验,为你挑选了1个好方法。

如何在C中实现此数据结构?它的结构类似于DAWG,但是空间效率是DAWG的两倍,比仅仅压缩前缀的trie更有效.



1> sfossen..:

从我在本文中看到的内容

这是一个带有后缀压缩的trie,可以减少匹配的最终状态变化,因为我曾经做过类似的事情,我也考虑过这样做以节省空间.这是我想到的数据结构的解决方案,我很想知道是否有其他方法:

struct cdawg
{
    int issuffix:1;
    int length:31;
    char *s; // suffix if issuffix == 1, else array of valid transition chars
    struct cdawg *trans; // array of next states based on the index of trans char in s, null if suffix
};

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有