Получение проблемы с приоритетной очередью в cpp
Я изучал кодирование Хаффмана ,столкнувшись с проблемой при работе с приоритетной очередью
Вот этот код[^]
Что я уже пробовал:
Я попытался внести некоторые изменения, которые я узнал до сих пор в cpp
в приведенной выше программе cpp я изменил нижеприведенную часть кода
struct Node { char ch; int freq; Node *left, *right; }; struct comp { bool operator()(Node* l, Node* r) { // highest priority item has lowest frequency return l->freq > r->freq; } };
и использование в качестве
`priority_queue<Node*, vector<Node*>, comp> pq`в функции buidingHuffmanTree ().
я изменил его на
struct Node { char ch; int freq; Node *left, *right; bool operator<(Node const* other) { return freq < other->freq; } };
Теперь я попробовал использовать как
`priority_queue<Node*, vector<Node*>> pq`
Но я получаю неправильные ответы. В вышеуказанной программе, входные статические, можно увидеть, что
ответы-это точно (вход-выход большой, я не могу здесь писать )
Также попытался изменить признаки, как частота &ГТ; другие.частота` а не в `<` получение неправильных ответов
То есть оба фрагмента кода работают по-разному,я думал, что они будут работать одинаково.
[1]: https://www.techiedelight.com/huffman-coding/
CPallini
Я не вижу кода на связанной странице.