查看: 215|回复: 0

二叉树(5)HuffmanTree

[复制链接]
发表于 2020-2-20 00:15:29 | 显示全部楼层 |阅读模式
构建一棵 HuffmanTree。
  
测试代码 main.cpp:
  1. #include  #include "HuffmanTree.h"  using std::cout; using std::endl;  int main() {     auto il = { 1,2,3,4,5,6,7,8,9 };      HuffmanTree ht(il.begin(), il.end());     ht.levelTraversal();     cout weight);             temp->left = pq.top();             pq.pop();             temp->weight += pq.top()->weight;             temp->right = pq.top();             pq.pop();             pq.push(temp);             temp = nullptr;         }     }      ~HuffmanTree() { clear(root); }      void levelTraversal()     {         if (root == nullptr) return;         std::queue nodePointers;         nodePointers.push(root);         Node* cur = nullptr;         while (!nodePointers.empty())         {             cur = nodePointers.front();             std::cout weight left != nullptr) nodePointers.push(cur->left);             if (cur->right != nullptr) nodePointers.push(cur->right);             nodePointers.pop();         }     }      struct comp     {         bool operator ()(const Node* _n1, const Node* _n2) { return _n1->weight > _n2->weight; }     };  private:     void clear(Node*& _root)     {         if (_root == nullptr) return;         clear(_root->left);         clear(_root->right);         delete _root;         _root = nullptr;     }  private:     Node* root = nullptr; };
复制代码

天涯海角也要找到Ni:二叉树(5)HuffmanTree

相关技术服务需求,请联系管理员和客服QQ:2753533861或QQ:619920289
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

帖子推荐:
客服咨询

QQ:2753533861

服务时间 9:00-22:00

快速回复 返回顶部 返回列表