最大堆: 1.创建:输入序列,从序列的size/2位置开始往前进行下沉操作(一般是类数组的数据结构) 2.top:直接返回首元素(首元素取索引为一才能确定左右子树对应索引) 3.push:尾部加入元素,之后循环上浮操作,知道满足最大堆条件或者到根 4.pop:取首元素,首尾元素交换,弹出尾元素,对尾元素进行下沉操作 5.上浮:选定该结点编号,比较父节点大小,如果发生交换则指针改为指向父节点,循环直到满足最大堆或者与根节点进行交换 5.下沉:通过编号访问左孩子,判断是否有右孩子并指向最大孩子,不满足最大堆条件则交换,更新需要下沉的索引,循环直到堆的末尾
点赞

相关推荐

11-03 14:57
西北大学 营销
Belltrix:其实就是每根转动一定的角度
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务