首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
最小最大堆(min max Heap)是一种特定的堆,其最小层和最大层交替出现,根总是处于最小层。最小最大堆中的任一结点的关键字值总是在以它为根的子树中的所有元素中最小(或最大)。如图所示为一最小最大堆。 编写一算法实现最小最大堆的插入功能。假定最小最
最小最大堆(min max Heap)是一种特定的堆,其最小层和最大层交替出现,根总是处于最小层。最小最大堆中的任一结点的关键字值总是在以它为根的子树中的所有元素中最小(或最大)。如图所示为一最小最大堆。 编写一算法实现最小最大堆的插入功能。假定最小最
admin
2019-08-01
87
问题
最小最大堆(min max Heap)是一种特定的堆,其最小层和最大层交替出现,根总是处于最小层。最小最大堆中的任一结点的关键字值总是在以它为根的子树中的所有元素中最小(或最大)。如图所示为一最小最大堆。
编写一算法实现最小最大堆的插入功能。假定最小最大堆存放在数组中,关键字为整数。
选项
答案
从插入位置进行调整,调整过程由下到上。首先根据元素个数求出插入元素所在层次数,以确定其插入层是最大层还是最小层。若插入元素在最大层,则先比较插入元素是否比双亲小,如是,则先交换,之后,将小堆与祖先调堆,直到满足小堆定义或到达根结点;若插入元素不小于双亲,则调大堆,直到满足大堆定义。若插入结点在最小层,则先比较插入元素是否比双亲大,如是,则先交换,之后,将大堆与祖先调堆;若插入结点在最小层且小于双亲,则将小堆与祖先调堆,直到满足小堆定义或到达根结点。 void MinMaxHeaplns(RecType R[],int n){ //假设R[1..n—1]是最小最大堆,插入第n个元素,把R[1..n]调成最小最大堆 j=n;R[0]:R[j]; h=log
2
n+l; //求高度 if(h%2==0){ //插入元素在偶数层,是最大层 i=n/2; if(R [0].key
0 && R[j]>R[i]){ R[i]=R[j];i=j;j=i/4;} //调小堆 R[i]=R[0]; } else{ //插入元素大于双亲,调大堆 i=n;j=i/4; while(j>0 && R[j]
R[i].key){ //插入元素大于双亲,先与双亲交换,然后调大堆 R[j]=R[i]; j=i/4; while(j>0&&R[-j]
0&&R[j]>R[i]){ R[i]=R[j];i=j;j=i/4;} R[i]=R[0]; } } }
解析
转载请注明原文地址:https://www.kaotiyun.com/show/w3Ci777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
有研究者提出,1850年以后的34年中,流人中国的白银是之前34年的两倍。出现这一现象的原因是()
试以英国为例分析工业革命的深远影响。
简述隋唐科举制的内容和意义。
罗马法的集大成《查士丁尼民法大全》产生的时间是在()。
古埃及第24朝法老波克利斯进行改革,宣布废除奴隶制,债权人只能索取债务人的财产作抵偿,而不能占有债务人的人身,因为财产属于个人,而公民人身属于国家,国家需要他们服役。该改革旨在
下列长征事件的正确顺序是()。 ①四渡赤水②召开遵义会议③吴起镇会师④飞夺泸定桥
西周的官僚制度已经相当完备,官僚机构庞杂,职官名目繁多。周王室的官僚机构分为两大系统,分别是()。
德国纳粹党消灭资产阶级民主制的关键性事件是()。
支持多道程序的操作系统,区别于其他操作系统的主要特征为()。
路由器采用()方式来发送IP分组。
随机试题
依赖性(dependence)
椎动脉起源于
社会主义道德建设的核心是()
关于转座子的叙述,错误的是
男性30岁,由5m高处跌下2小时。腹痛,腹肌紧张,有压痛和反跳痛,肠鸣音弱。血压104/70mmHg,脉率120次/min。血红蛋白80g/I_.。X线检查:右侧第9、10肋骨骨折,右侧膈肌升高。最可能的诊断是
一休克病人BP70/50mmHg,CVP4cmH2O,P90次/分,正确的诊断与处理是()。
下列属于价值型股票的是()。
下列叙述中正确的是()。
A、 B、 C、 D、 B图片中表现的是一名女子在使用电脑的情景。从圈中我们可以看出她的手正放在键盘上,所以选项(B)typingonakeyboard符合这一场景,是正确答案。如果没有听清选项(D)中
WhichofthefollowingstatementsisNOTtrueaboutlife150yearsago?
最新回复
(
0
)