9#ifndef INCLUDED_SDSL_WT_HUFF
10#define INCLUDED_SDSL_WT_HUFF
56 class t_rank =
typename t_bitvector::rank_1_type,
57 class t_select =
typename t_bitvector::select_1_type,
58 class t_select_zero =
typename t_bitvector::select_0_type,
59 class t_tree_strat = byte_tree<>>
67 typedef std::pair<size_type, size_type>
tPII;
68 typedef std::priority_queue<tPII, std::vector<tPII>,
75 template <
class t_rac>
81 std::for_each(std::begin(C), std::end(C), [&](
decltype(*std::begin(C)) & freq) {
84 pq.push(
tPII(freq, temp_nodes.size()));
88 temp_nodes.emplace_back(
pc_node(freq, i));
99 temp_nodes[v1.second].parent = temp_nodes.size();
100 temp_nodes[v2.second].parent = temp_nodes.size();
102 pq.push(
tPII(frq_sum, temp_nodes.size()));
110 template <
class t_wt>
A prefix code-shaped wavelet.
Namespace for the succinct data structure library.
int_vector< 1 > bit_vector
bit_vector is a specialization of the int_vector.
std::priority_queue< tPII, std::vector< tPII >, std::greater< tPII > > tMPQPII
static void construct_tree(t_rac &C, std::vector< pc_node > &temp_nodes)
std::pair< size_type, size_type > tPII
t_wt::size_type size_type
wt_pc.hpp contains a class for the wavelet tree of byte sequences.