【C++第十课 - stack_queue】stack、queue的使用、适配器模型stack、queue和priority_queue的底层实现、deque-二、queue的使用

在这里插入图片描述

容器container默认是deque(双端队列)

在这里插入图片描述

priority_queue

不是先进先出,是按优先级出
底层是:堆
是适配器,不是容器了
compare是比较的函数

在这里插入图片描述
在这里插入图片描述

习题

在这里插入图片描述
方法一

在这里插入图片描述

class Solution {
public:
    vector<vector<int>> levelOrder(TreeNode* root) {
        queue<TreeNode*> q;
        queue<int> qlayer;
        vector<vector<int>> vv;
        int layer = 1;
        if(root)
        {
            q.push(root);
            qlayer.push(layer);
        }
        while(!q.empty())
        {
            vector<int> v;
            while(qlayer.front() == layer )
            {
                TreeNode* cur = q.front();
                q.pop();
                v.push_back((*cur).val);
                if(cur->left)
                {
                  q.push(cur->left);
                  qlayer.push(layer + 1);
                }
                if(cur->right)
                {
                    q.push(cur->right);
                    qlayer.push(layer + 1);
                }
                qlayer.pop();
            }
            vv.push_back(v);
            ++layer;
        }
        return vv;
    }
};

方法二

上一篇:SQL使用注意事项


下一篇:第2章 Vite快速上手