题解 | 【模板】堆

【模板】堆

https://www.nowcoder.com/practice/13f61c8c92404f5ea5d6fa4c692869fb

#include <functional>
#include <iostream>
#include <ostream>
#include <queue>
using namespace std;

int main() {
    //大顶堆
    priority_queue<int,vector<int>,less<int>> hinp;
    int n ; 
    cin >> n;
    for(int i =  0 ; i < n ; i++){
        string s;
        cin>>s;
        if(s[0]=='p'&&s[1]=='u'){
            //push
            int t;
            cin>>t;
            hinp.push(t);
        }
        if(s[0]=='t'){
            if(hinp.empty()){
                cout<<"empty"<<endl;
                continue;
            }
            cout<<hinp.top()<<endl;
        }
        if(s[0]=='p'&&s[1]=='o'){
            if(hinp.empty()){
                cout<<"empty"<<endl;
                continue;
            }
            cout<<hinp.top()<<endl;
            hinp.pop();
                    }


    }


    return 0;

}
// 64 位输出请用 printf("%lld")

less(大根堆) greater(小根堆)使用c++的priority_queue容器实现对大更小更堆的操作

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务