写下沉

补全 sift_down:让下标 i 上的元素一路往下沉到该去的位置。把堆顶换成 17 再沉一次,输出新的堆顶。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

写弹出

补全 pop_top:取走堆顶、拿末尾补上、再下沉,返回取走的那个。补全后输出弹出来的值。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

连弹两次第二次弹出谁

同一个 pop_top。连着弹两次,输出第二次弹出来的值。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

默认的优先队列谁在顶上

priority_queue<int> 不加任何参数时,top() 拿到的是【0】。

开始练习 →

怎么写出小根堆

第 1 步:同样的五个数依次进去 第 2 步:默认:大的先出来 第 3 步:写 greater<>:小的先出 第 4 步:方向和 sort 正好相反 24 23 17 15 13 13 15 17 23 24 想让 priori

开始练习 →

比较器方向为何和 sort 反

sort 用 greater<> 排出从大到小,priority_queue 用它却是小的先出,原因是【0】。

开始练习 →

默认 priority_queue 的顶

运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include <utility> #include

开始练习 →

加上 greater 之后的顶

运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include <utility> #include

开始练习 →

补全:写一个小根堆

补全 pq 的声明,让它变成小根堆,然后把五个数依次弹出,用 / 拼起来输出。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

补全:按优先级的比较器

补全比较器 ByPrio:优先级大的先出;优先级相同,先进来的(seq 小的)先出。把出队顺序用 / 拼起来输出。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →