当前位置: 首页 > wzjs >正文

科技期刊网站建设如何制作一个收费的网页

科技期刊网站建设,如何制作一个收费的网页,哪些是门户网站,最简单网站建设【C算法】构建最优哈夫曼树 作者&#xff1a;爱写代码的刚子 时间&#xff1a;2024.1.20 前言&#xff1a;本篇博客的代码均为自己独立完成&#xff0c;可能会有瑕疵 代码实现 #include <iostream> #include <vector> #include <queue> using namespace std…

【C++算法】构建最优哈夫曼树

作者:爱写代码的刚子
时间:2024.1.20
前言:本篇博客的代码均为自己独立完成,可能会有瑕疵

代码实现

#include <iostream>
#include <vector>
#include <queue>
using namespace std;template <class T>
class TreeNode
{
public:TreeNode(const T&value):_parent(nullptr),_left(nullptr),_right(nullptr),_value(value),_a(0){}TreeNode(const T&value,const int& a):_parent(nullptr),_left(nullptr),_right(nullptr),_value(value),_a(a){}TreeNode* _parent;TreeNode* _left;TreeNode* _right;T _value;int _a;};template <class T>
class Huffman_tree
{typedef TreeNode<T> Node;
public:Huffman_tree():_root(nullptr){}template<class F>struct greater{bool operator()(const F & x,const F & y) const{if(x->_value==y->_value){printf("equal\n");return x->_a>y->_a;}return x->_value>y->_value;}};void creat_Huffman_tree(vector<T> v){sort(v.begin(),v.end());priority_queue<Node* ,vector<Node* >,greater<Node*>> pq;for(auto& e:v){Node* node=new Node(e);pq.push(node);}while(!pq.empty()) {Node *left = pq.top();pq.pop();Node *right = nullptr;if (!pq.empty()) {right = pq.top();pq.pop();} else {_root = left;return;}Node *parent = new Node(left->_value + right->_value, 1);left->_parent = parent;right->_parent = parent;parent->_left = left;parent->_right = right;//test(parent);pq.push(parent);}}void Print(){Node* copy=_root;_Print(copy);cout<<"这是前序遍历\n"<<endl;}void test(Node* test){_test(test);cout<<endl;}private:Node* _root;void _Print(Node* root){if(root==nullptr){return;}cout<<root->_value<<" ";_Print(root->_left);_Print(root->_right);}void _test(Node* test){if(test==nullptr){return;}cout<<test->_value<<" ";_Print(test->_left);_Print(test->_right);}
};
int main()
{vector<int> v{19,21,32,2,3,6,7,10};vector<int> v1{3,4,5,6,7,8,9};Huffman_tree<int> hf;hf.creat_Huffman_tree(v);hf.Print();return 0;
}

思路

采用优先级队列,将数据进行插入处理。
这个代码还有优化的地方:creat_Huffman_tree(v);采用了vector的拷贝构造,可以换成迭代器直接构造。
核心函数: void creat_Huffman_tree(vector<T> v);

http://www.dtcms.com/wzjs/806088.html

相关文章:

  • 网站建设的实训报告淘宝运营培训班多少钱
  • 网站一个人可以做吗wordpress 移动端模板
  • 手机网站建设需求北大企业管理培训课程
  • 郑州网站建设网站制作高定网站
  • 深圳系统网站开发营销网站建站开发
  • 宁波专业做公司网站的科技公司安全员资格证书查询网
  • 做网站答辩wordpress小说文章发布软件
  • 韩国网站never邢台123最新招聘信息
  • php做的直播网站购物网站开发的背景介绍
  • 做明星简介网站侵权吗优化seo搜索
  • 邢台营销型网站建设费用百度搜索引擎的使用方法
  • 网站空间哪个好中企动力官网邮箱
  • 济南手机端建站模板网站建设价格标准报价单
  • 扫二维码做自己网站淘宝内部优惠券网站怎样做的
  • 微信公众号做网站php网站建设文献综述
  • 网站建设珠江摩尔网站建设功能需求分析
  • 做的好的响应式网站如何建立企业网站
  • 强的小企业网站建设网站建设 食品
  • 网站建设响应式是什么t云建站
  • 大连手机自适应网站建设服务企业官方网站建设教程
  • 湛江城市建设培训中心网站wordpress预览效果不一样
  • 七星迪曼网站建设天河微网站建设
  • 兰州网站建设招聘动物大联盟小程序
  • 葡京网站做中间商佛山旺道seo优化
  • 公司网站建设全西青天津网站建设
  • 郑州网站app建设中国科技成就2019
  • 网站安全建设步骤index.html网站怎么做
  • 学做川菜网站动画设计专业就业前景怎么样
  • 网站注册商是什么学校做的网站外面访问不了
  • 公司网站域名续费一年多少钱网站开发综合设计报告