先考虑平衡Wavelet Tree,复杂度如下,易于理解
对于上图,在我们已经存储最长的字符串的情况下,如何存储这些子串呢?
首先存储是不需要指针的,因为是平衡二叉树,直接存就行
像上图那样,只是中间没有分隔符。我们知道原始字符串长度11,如果去左孩子,直接走,如果去右孩子,可以用rank函数跳。
如果用huffman tree,不用平衡二叉树呢,看累了,先歇会。
先考虑平衡Wavelet Tree,复杂度如下,易于理解
对于上图,在我们已经存储最长的字符串的情况下,如何存储这些子串呢?
首先存储是不需要指针的,因为是平衡二叉树,直接存就行
像上图那样,只是中间没有分隔符。我们知道原始字符串长度11,如果去左孩子,直接走,如果去右孩子,可以用rank函数跳。
如果用huffman tree,不用平衡二叉树呢,看累了,先歇会。