专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

开源C语言库Melon斐波那契堆

  本篇介绍开源C语言库Melon的斐波那契堆的使用。关于Melon库,这是一个开源的C语言库,它具有:开箱即用、无第三方依赖、安装部署简单、中英文文档齐全等优势。
  Github:github。comWaterMelonMelon简介
  关于斐波那契堆,感兴趣的朋友可以参考《算法导论》或者是各类讲解博客。
  本篇介绍的是斐波那契最小堆,但对于判断条件和初始化属性进行调整后,也可实现最大堆。
  数据结构各类操作时间复杂度:创建堆:O(1)插入:O(1)取最小值:O(1)将最小值从堆中移除:O(logN)合并堆:O(1)将堆结点key值减小:O(1)移除某个堆结点:O(logN)
  由此,我们可以看到斐波那契堆非常适合频繁插入和删除以及取得极值(最小值)结点操作。这样的操作第一个能想到的场景就是实现对超时定时器的管理。使用
  我们先给出示例代码:includestdio。hincludestdlib。hincludemlncore。hincludemlnlog。hincludemlnfheap。hstaticintcmphandler(constvoidkey1,constvoidkey2){return(int)key1(int)key2?0:1;}staticvoidcopyhandler(voidoldkey,voidnewkey){(int)oldkey(int)newkey;}intmain(intargc,charargv〔〕){inti10,min0;mlnfheaptfh;mlnfheapnodetfn;structmlnfheapattrfattr;structmlncoreattrcattr;cattr。argcargc;cattr。argvargv;cattr。globalinitNULL;cattr。masterprocessNULL;cattr。workerprocessNULL;if(mlncoreinit(cattr)0){fprintf(stderr,initfailed);return1;}fattr。poolNULL;fattr。poolallocNULL;fattr。poolfreeNULL;fattr。cmpcmphandler;fattr。copycopyhandler;fattr。keyfreeNULL;fattr。minvalmin;fattr。minvalsizesizeof(min);fhmlnfheapnew(fattr);if(fhNULL){mlnlog(error,fheapinitfailed。);return1;}fnmlnfheapnodenew(fh,i);if(fnNULL){mlnlog(error,fheapnodeinitfailed。);return1;}mlnfheapinsert(fh,fn);fnmlnfheapminimum(fh);mlnlog(debug,d,((int)mlnfheapnodekey(fn)));mlnfheapfree(fh);return0;}
  main函数中的流程大致如下:对Melon库进行初始化设置斐波那契堆初始化属性对斐波那契堆进行初始化创建斐波那契堆结点将新建的斐波那契堆结点插入堆中取斐波那契堆中最小key值的堆结点销毁斐波那契堆结构
  Melon中,使用斐波那契堆需要引入mlnfheap。h头文件。
  这里要对堆初始化属性进行一番说明:structmlnfheapattr{voidpool;fheappoolallochandlerpoolalloc;fheappoolfreehandlerpoolfree;fheapcmpcmp;fheapcopycopy;fheapkeyfreekeyfree;voidminval;mlnsizetminvalsize;};
  其中:pool是用于支持用户自定义内存池之用的,该指针将于poolalloc和poolfree配合使用。poolalloc是用于支持用户自定义分配内存之用,该函数指针第一个参数为pool,第二个参数是要分配的内存大小。poolfree是用于支持用户自定义释放内存之用,该函数指针第一个参数为要释放的内存起始地址。cmp是用于对两个堆结点所关联的用户自定义数据进行比较大小之用的。copy是用于将堆结点key值减小(decreasekey)时,将新key值(即用户自定义结构)拷贝到老key值中。keyfree是用于对堆结点所关联的用户自定义数据进行释放之用的。minval用户自定义结构的最小值,因为这里实现的是最小堆,因此需要给出一个相对所有插入本堆的结点而言都小的最小值范例。minvalsize用户自定义最小值结构所占字节数,即minval指向的结构的字节大小。
  这些属性字段中,除cmp,copy,minval和minvalsize外,其余若无需求,则可以置NULL。
  内存池和分配释放函数主要是用于堆结点的分配和释放之用。之所以不直接给出一个Melon实现的内存池结构指针,是因为不希望斐波那契堆代码与内存池类型强关联,这样允许斐波那契堆可以接入使用者自己定义的内存管理功能。
  关于斐波那契堆代码的演进,与此前红黑树文章基本类似,再次就不过多阐述了。
  斐波那契堆在整个Melon框架中的使用场景基本都是在超时定时器的维护上面。结语
  在Melon中,斐波那契堆的使用相较于红黑树而言确实少了很多,因此其演进的速度相对来说会慢一些,演化方向也会受到类似红黑树结构演进的影响。
  同时,因为使用并不是很广泛,因此此前也有用户发起了issue,提出了堆结构存在实现错误,并给出了问题点。当然,问题早已被修复和验证。
  在此非常感谢各位使用者的使用和反馈,你们的反馈也是Melon库前进的动力。
  欢迎各位对Melon感兴趣的读者访问其Github仓库github。comWaterMelonMelon。
  感谢阅读!

赌对了?10亿投资回报6000亿,阿里亮出真实身份大家都知道,近几年来美国一直盯着中国高科技企业不放,只要发现有中企掌握了关键领域的核心技术就会对其进行打压和制裁,或者干脆拉进实体清单。就比如华为掌握了全球最先进的5G通讯技术大疆关于北京30个冷知识,带你了解真实的北京北京古称燕京,北平,历史悠久是我国首批国家历史文化名城,中国四大古都之一和世界上拥有世界文化遗产数最多的城市。人口2189万。1故宫的大缸是镀金的,八国联军侵华时,对22口金缸垂涎哪种编程语言最受欢迎?2023年最火的五款编程语言,你知道几个?编程语言,对于很多初入编程的小伙伴来说都是比较关注的一个点,我应该选择什么编程语言,编程语言,对于很多初入编程的小伙伴来说都是比较关注的一个点,我应该选择什么编程语言,什么编程语言dnf巴卡尔奖励竞拍,贴膜装备道具价格,竞拍收益扭曲次元结晶大家好,我是十年本期分享巴卡尔奖励竞拍,热门道具价格参考第一个是共鸣灵力和普通史诗,都是用来喂养的,一般就300多万保底运气好遇到有人抢的也就500万左右,如果75级词条多的,也可东方财富交易软件一日两连崩去年信息技术服务营收逾46亿券茅东方财富(300059)交易软件崩上两次热搜。3月21日上午,东方财富交易软件出现宕机,不少投资者在社交媒体反映无法正常登录和交易。10时30分左右,东方财富交易软件恢复正常。原神振晶实验试玩绫华,实战手感劝退了部分玩家下池子各位大佬好,绫华复刻在即,不知各位绫华厨们是否准备了充足的原石准备大战绫华雾切,顺便拐回申鹤小姨。绫华一直以来以超高的人气占据原神人气榜前列。相信3。5下半有不少玩家补命抽爆雾切,宁创新品南京市应用场景现场观摩会(新零售专场)成功举办龙虎网讯(记者吕文卫)近日,宁创新品第9场南京市应用场景现场观摩会(新零售专场)成功举办。活动由南京市工业和信息化局(南京市创新产品推广办公室)主办,市各有关部门和单位各板块工信部奋进的春天汉中开拓消费新场景打造经济增长新引擎游客在汉中市汉台区老君镇皇塘油菜花观景区游玩。西部网讯(记者李卓然通讯员张进刚)随着天气转暖,位于秦岭腹地的汉中市充分利用生态区位优势和国家历史文化名城底蕴,吸引了全国大批的游客到相约安徽向春而行在石台秋浦河百里画廊感受春日浪漫大皖新闻讯连绵起伏的青山澄澈如碧的河水静谧的古村落连片成海的花田沿着石台秋浦河百里画廊一路前行,春天的美景尽收眼底。石台秋浦河百里画廊途经大龙湾摄影点屏风里慢庄民宿西黄山茶旅度假区贵州施秉春分到农事忙2023年3月21日,施秉县杨柳塘镇地坝村村民在采摘春茶。磨桂宾摄2023年3月21日,施秉县杨柳塘镇地坝村村民在采摘春茶。磨桂宾摄2023年3月21日,施秉县杨柳塘镇地坝村村民在香港悄然兴起深圳代购,不过可能面临这些风险自香港与内地2月6日恢复全面通关以来,两地人员交流迎来大幅度增长。据香港旅游发展局提供的最新数字,2月访港旅客为146万人次,其中内地旅客占比超75,是2020年2月疫情发生以来,
张庭公司营收91亿被处罚,陶虹抽身拿走4亿现金,好姐妹成仇敌张庭从演员变成一个微商,在尝到卖货的甜头后,还把好姐妹陶虹拉入伙,一起开公司。2021年在接受采访时,陶虹和张庭为了宣传新品牌,回应自己加盟公司的原因,主动说公司和她有关系,她是股吴昕发展稳定,谢娜却成皮球被踢来踢去,昔日姐妹境况大不相同从去年9月到现在,快乐大本营已经停播半年了。谁都没想到一档开播了24年的综艺会以无声的方式告别。因而快乐家族每位成员的去向成为大家关注的重点。随着时间的推移,我们发现躲在角落中的吴重新定义以人为本,电动化时代丰田迎最强底牌伴随着奥林匹克颂的旋律响彻鸟巢,北京2022年冬奥会和冬残奥会在全球瞩目中落下帷幕。作为疫情期间国际体育届的一大综合盛事,北京2022年冬奥会和冬残奥会不仅向世界展出了一场绿色安全周杰伦心脏出问题7天后首度露面!昆凌挺肚陪身边最新近况曝图文镜周刊周杰伦的老婆昆凌第三胎待产中,虽然他上周贴出一张注射针头照,贴出心脏出现问题,吓坏好友与粉丝。事后,经纪公司表示谢谢大家关心,并报平安。而昨(13)日余文乐贴出与周杰伦夫目前最便宜的4款二手机皇,优点各不相同,最高降价5000元买二手机曾经是预算低的性价比之选,而如今随着靠谱的平台出现,也成为一种合理的投资。今天就来给大家推荐四款性价比超高的四款二手手机,买新不买旧在它们身上一点也不灵验,曾经的机皇也能轻误杀瞒天记4月15日将在国内部分影院上映?看过电影误杀的观众,一定程度上会被里面其缜密的剧情设计和精巧的反转叙事给深深的吸引。其电影的独特表现形式暗藏的主题值得深思和回味。误杀不得不说是一部好电影,但跟原版误杀瞒天记比起来界读丨库克降价策略失败!最便宜iPhone没人买欧界报道近几年,我们看到了一个更接地气的苹果,原本价格高得吓人的产品也开始变得略微友好,这是库克坚持降价策略的结果。苹果实行降价策略的根本原因,还是因为安卓手机的冲击。随着三星华为NBA季后赛预测附加赛老鹰战胜骑士鹈鹕战胜快船西部太阳41鹈鹕独行侠24爵士,东契奇能否出战将会成为这轮系列赛的关键,如果不能出现,关键时刻独行侠将没有能自主投中关键球的球员,爵士胜算会比比较大勇五一小长假前,买手机首选这四款,拍照好看续航也很顶疫情逐渐回温,五一小长假将至,春末夏初正是适合出去走动的日子,这时拥有一台能替代相机的好手机就很有必要了。今天就来给大家推荐几款五一必get手机,拍照续航都给力,而且价格也十分公道官宣!重磅罚单公布,恶意推人被禁赛1场,争议言论被罚2万北京时间4月14日,NBA附加赛继续展开,这次将是第九和第十之间的对决,两队的胜者还需要与第七和第八的败者决出第八的席位。而在场外NBA又公布了一笔重磅罚单,掘金球员坎帕佐被禁赛一咏梅美出天际的她,退出群聊了1990年,黑豹乐队第一张专辑黑豹中的经典歌曲DontBreakMyHeart要拍MV,迟迟没有合适的女主角。彼时作为乐队键盘手的栾树,恰好在从成都回北京的绿皮火车上,认识了咏梅,
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网