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

创新的购物网站建设搜索引擎优化排名优化培训

创新的购物网站建设,搜索引擎优化排名优化培训,国家反诈骗app开发公司,昆明市西山区建设局网站一,引言 优先级队列是队列的一种特殊形式,使得队列按照大小顺序以此出队列。实现优先级队列的模拟实现需要用到两个知识点1,队列数据的调整算法,以及仿函数。 二,调整算法 优先级队列的调整算法底层就是堆的调整算法。有向下调整和向上调整两种。具体在…

一,引言

优先级队列是队列的一种特殊形式,使得队列按照大小顺序以此出队列。实现优先级队列的模拟实现需要用到两个知识点1,队列数据的调整算法,以及仿函数。

二,调整算法


优先级队列的调整算法底层就是堆的调整算法。有向下调整和向上调整两种。具体在往期的文章中有具体的讲解:
https://blog.csdn.net/2301_81893652/article/details/146443802?spm=1001.2014.3001.5501

三,仿函数

仿函数不是函数,是一个类。类内部实现()的运算符重载,返回bool类型。具体实现如下:

template<class T>
class Less
{
public:bool operator()(const T& x, const T& y){return x < y;}
};template<class T>
class Greater
{
public:bool operator()(const T& x, const T& y){return x > y;}
};

四,priority_queue的具体实现

在队queue的基础上,通过仿函数控制升序还是降序,每次进行push操作时都在之后加上调整算法。在pop操作时也都加上调整算法。其他的接口和queue保持一致。具体实现如下:

template<class T>
class Less
{
public:bool operator()(const T& x, const T& y){return x < y;}
};template<class T>
class Greater
{
public:bool operator()(const T& x, const T& y){return x > y;}
};namespace Cao
{// 默认是大堆template<class T, class Container = vector<T>, class Compare = Less<T>>class priority_queue{public:void AdjustUp(int child){Compare com;int parent = (child - 1) / 2;while (child > 0){//if (_con[parent] < _con[child])if(com(_con[parent], _con[child])){swap(_con[child], _con[parent]);child = parent;parent = (child - 1) / 2;}else{break;}}}void push(const T& x){_con.push_back(x);AdjustUp(_con.size() - 1);}void AdjustDown(int parent){// 先假设左孩子小size_t child = parent * 2 + 1;Compare com;while (child < _con.size())  // child >= n说明孩子不存在,调整到叶子了{// 找出小的那个孩子//if (child + 1 < _con.size() && _con[child] < _con[child + 1])if (child + 1 < _con.size() && com(_con[child], _con[child + 1])){++child;}//if (_con[parent] < _con[child])if (com(_con[parent],_con[child])){swap(_con[child], _con[parent]);parent = child;child = parent * 2 + 1;}else{break;}}}void pop(){swap(_con[0], _con[_con.size() - 1]);_con.pop_back();AdjustDown(0);}const T& top(){return _con[0];}size_t size() const{return _con.size();}bool empty() const{return _con.empty();}private:Container _con;};
}

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

相关文章:

  • 制作书签的意义seo优化师
  • 怎样做动漫照片下载网站哪里做网络推广
  • 百度大数据官网入口seo优化外包
  • 怎么在建设银行网站购买国债2023新闻热点事件
  • 如何建立收费视频网站爱站网 关键词挖掘工具
  • 网站后台管理系统怎么做网络推广服务合同范本
  • 如何引用网站图片个人免费建站软件
  • 悦然外贸建站上海排名seo公司
  • 网站的栏目结构简图怎么做搜索引擎优化好做吗
  • 温州网页建站模板百度收录批量提交入口
  • 外贸网站建设公司信息成都网站制作设计公司
  • 抚顺网站建设服务电话软文写作经验是什么
  • 做设计用的素材下载网站有哪些今日小说排行榜
  • 做销售用什么网站色目人
  • 做网站重庆seo零基础入门到精通200讲
  • 网站做广告投放 要求做效果评估sem竞价托管费用
  • 网站建设推广是什么工作乐云seo
  • 登陆网站密码不保存怎么做外链工具xg下载
  • 深圳h5网站建设2021搜索引擎排名
  • 跨境建站平台seo运营是什么意思
  • 福州网站制作网站谷歌优化排名怎么做
  • 中国建设造价工程协会网站谈谈对seo的理解
  • 安徽省建设厅网站工程师查询网站关键词优化推广
  • 软件开发网站建设地推是什么
  • 专业的集团网站建设北京推广平台
  • 中国武汉建设网电商seo优化
  • 安康网站建设技巧天天自学网网址
  • 众云网联做的网站效果好吗友链提交入口
  • 网站的flash怎么做杭州网站建设
  • 西安官网seo技巧seo排名推广