9#ifndef INCLUDED_SDSL_WT_HUFF
10#define INCLUDED_SDSL_WT_HUFF
63 class t_rank =
typename t_bitvector::rank_1_type,
64 class t_select =
typename t_bitvector::select_1_type,
65 class t_select_zero =
typename t_bitvector::select_0_type,
66 class t_tree_strat = byte_tree<>>
74 typedef std::pair<size_type, size_type>
tPII;
75 typedef std::priority_queue<tPII, std::vector<tPII>,
82 template <
class t_rac>
88 std::for_each(std::begin(C),
90 [&](
decltype(*std::begin(C)) & freq)
94 pq.push(
tPII(freq, temp_nodes.size()));
98 temp_nodes.emplace_back(
pc_node(freq, i));
102 while (pq.size() > 1)
109 temp_nodes[v1.second].parent = temp_nodes.size();
110 temp_nodes[v2.second].parent = temp_nodes.size();
112 pq.push(
tPII(frq_sum, temp_nodes.size()));
120 template <
class t_wt>
A prefix code-shaped wavelet.
int_vector.hpp contains the sdsl::int_vector class.
Namespace for the succinct data structure library.
int_vector< 1 > bit_vector
bit_vector is a specialization of the int_vector.
static void construct_tree(t_rac &C, std::vector< pc_node > &temp_nodes)
t_wt::size_type size_type
std::pair< size_type, size_type > tPII
std::priority_queue< tPII, std::vector< tPII >, std::greater< tPII > > tMPQPII
wt_pc.hpp contains a class for the wavelet tree of byte sequences.