请实现一个小根堆,根节点的下标为1,堆初始为空,并实现以下几种功能:
1.pop 删除堆顶元素,并重新维护至小根堆,保证堆不为空
2.insert x a1 a2 ...ax ,把a1 a2 ... ax直接加入数组的尾部,并对数组重新进行Floyd 建堆算法
3.print x,输出数组中下标为x的元素,保证堆中元素数量大于等于x
输入第一行n,表示操作的数量
对于所有操作3,输出一行,每行一个数字
10 insert 6 1 1 4 5 1 4 pop print 2 print 4 pop insert 4 1 9 1 9 print 3 pop pop print 3
1 5 1 4
1 \leq n,x\leq 1000, 1 \leq a_i \leq 10^9
如果两个叶子节点均优于父节点且两个叶子节点相等,那么请选择左儿子与父节点交换
原创