当前位置: 首页 > news >正文

宁夏城乡建设厅网站电商网站建设基本流程图

宁夏城乡建设厅网站,电商网站建设基本流程图,门户网站建设制作,福田公司旗下子公司1.使用栈实现队列的下列操作&#xff1a; push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 #include <bits/stdc.h> using namespace std; class MyQueue { public: stack…

1.使用栈实现队列的下列操作:

push(x) -- 将一个元素放入队列的尾部。
pop() -- 从队列首部移除元素。
peek() -- 返回队列首部的元素。
empty() -- 返回队列是否为空。

#include <bits/stdc++.h>
using namespace std;
class MyQueue
{
   public:
    stack<int> stIn;
    stack<int> stOut;
    MyQueue(){}
    void push(int x)
    {
        stIn.push(x);
    }
    int pop()
    {
        if(stOut.empty())
        {
            while(!stIn.empty())
            {
                stOut.push(stIn.top());
                stIn.pop();
            }
            
        }
        int result=stOut.top();
            stOut.pop();
            return result;
    }
    int peak()
    {
        int res=this->pop();
        stOut.push(res);
        return res;
    }
    bool empty()
    {
        return stIn.empty()&&stOut.empty();
    }
    
};
int main()
{
    MyQueue q;
    q.push(1);
    q.push(2);
    q.push(3);
    cout<<q.peak()<<endl;
    cout<<q.pop()<<endl;
    q.push(4);
    q.push(6);
    q.pop();
    while(!q.empty())
    {
        cout<<q.pop()<<" ";
    }
    cout<<endl;
    cout<<(q.empty()?"是":"否");
    return 0;
}
 

思路:在这里我们·要用栈来实现队列的操作,首先我们先来思考,队列遵循FIFO(先进先出),而栈遵循FILO(先进后出),两者的元素进出顺序可谓是截然不同,如何才能实现呢,这时我们可以想到用2个栈,假设有一个队列,有三个元素1,2,3按顺序进入队列,出去时的顺序仍然是1,2,3,同时有2个栈stIn和stOut,元素先按顺序进入到stIn,然后出来,但是顺序反过来了,变成了3,2,1,这是继续进入到stOut中,当它们再次出栈时,顺序就恢复成了1,2,3,这不就正好是我们想要的结果吗。

2.使用队列实现栈的下列操作:

  • push(x) -- 元素 x 入栈
  • pop() -- 移除栈顶元素
  • top() -- 获取栈顶元素
  • empty() -- 返回栈是否为空

#include <bits/stdc++.h>
using namespace std;
class Stack{
    public:
    Stack(){}
    queue<int> que;
    void push(int x)
    {
        que.push(x);
    }
    int pop()
    {
        int size=que.size();
        size--;
        while(size--)
        {
            que.push(que.front());
            que.pop();
        }
        int result=que.front();
        que.pop();
        return result;
    }
    int top()
    {
        return que.back();
    }
   bool empty()
   {
       return que.empty();
   }
};
int main()
{
    Stack st;
    st.push(1);
    st.push(2);
    st.push(3);
    cout<<st.top()<<endl;
    cout<<st.pop()<<endl;
    while(!st.empty())
    {
        cout<<st.pop()<<" ";
    }
    cout<<endl;
    cout<<(st.empty()?"Yes":"No");
    return 0;
 } 

 思路:在这里我们要用队列实现栈,有的人想当然的就用2个队列来实现,其实也是可以的,但是和1个队列来实现栈操作比起还是显得麻烦了,为什么只需要一个队列就可以呢,因为队列两端与栈两端不同,它两端都不封闭。假设有3个元素1,2,3,按顺序进入到栈,输出时顺序应该为3,2,1,当1,2,3进入到队列时为了让输出的首个元素也为3,我们只能让其余不是3的元素让路,那么我们就要将其弹出,并且回到该队列中,那不就是又让它们从队列入口端进入了吗,这样一来就实现了我们想达到的效果。

另外,其实我们仔细看一下两者栈的第一个元素不就是队列的入口端的第一个元素吗,因此取栈顶元素就是取队列入口端的第一个元素。
 

http://www.dtcms.com/a/534525.html

相关文章:

  • 合肥企业建站系统模板页面设计需求
  • 网站设计中的技术分析建设像京东一样的网站
  • 阎良建设局 网站男女做暖网站
  • php网站开发经理招聘wordpress 菜单标题属性
  • 信用网站标准化建设二级注册建造师信息查询官网入口
  • 去国外做移动支付网站吗如何在百度上搜索到自己的网站
  • 网上做翻译兼职网站好数据导航 wordpress
  • 网站登记模板包头企业网站建设
  • 网站搭建服务器需要多少钱房地产网站推广
  • 永嘉网站优化企业邮箱来一个
  • 网站设计大概收费范围宜宾市规划建设局网站
  • 佛山专业的做网站的wordpress开发商城
  • 建单页网站网站正在建设中单页
  • 台州哪家做企业网站比较好2345网站登录
  • 橙色 网站六安政务中心网站
  • 做电子手抄报的网站建设一个网站平台
  • 温州网站设计哪家公司好网站空间空间
  • 北辰网站建设公司永湖网站建设
  • 如何写网站建设报告页面升级每天自动更新
  • 邯郸网址场百度推广和优化有什么区别
  • 怎么了解百度蜘蛛到哪个网站公司注册名字
  • 建立自己的网站费用网站的关键字 设置
  • 杭州网站开发凡客logo设计网站排行榜
  • 免费自助建站排名上海全上海全国网站建设
  • 哪里网站建设专业app和微网站的区别是什么
  • html5 wap网站毕业设计做网站有什么好处
  • 2023年没有封闭的网站有哪些seo怎么收费的
  • 网站开发毕设任务书建设厅查询网站
  • 阜宁做网站网站建设培训的心得
  • 知了网站后台建设自己网站软件下载