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

做网站的必要条件谷歌seo优化推广

做网站的必要条件,谷歌seo优化推广,今日中国疫情最新消息,深圳手工外发加工网用队列实现栈 题目描述 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。int pop() 移除…

用队列实现栈

题目描述

        请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(pushtoppop 和 empty)。

实现 MyStack 类:

  • void push(int x) 将元素 x 压入栈顶。
  • int pop() 移除并返回栈顶元素。
  • int top() 返回栈顶元素。
  • boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。
输入:
["MyStack", "push", "push", "top", "pop", "empty"]
[[], [1], [2], [], [], []]
输出:
[null, null, null, 2, 2, false]
解释:
MyStack myStack = new MyStack();
myStack.push(1);
myStack.push(2);
myStack.top(); // 返回 2
myStack.pop(); // 返回 2
myStack.empty(); // 返回 False

解题思路

栈是一种后进先出的数据结构,元素从顶端入栈,然后从顶端出栈。

队列是一种先进先出的数据结构,元素从后端入队,然后从前端出队。

        为了满足栈的特性,即最后入栈的元素最先出栈,在使用队列实现栈时,应满足队列前端的元素是最后入栈的元素。可以使用两个队列实现栈的操作,其中queue1用于存储栈内的元素,queue2作为入栈操作的辅助队列。

        入栈操作时,首先将元素入队到 queue2,然后将 queue1的全部元素依次出队并入队到 queue2,此时 queue2的前端的元素即为新入栈的元素,再将 queue1和 queue2互换,则 queue1的元素即为栈内的元素,queue1的前端和后端分别对应栈顶和栈底。

        由于每次入栈操作都确保 queue1的前端元素为栈顶元素,因此出栈操作和获得栈顶元素操作都可以简单实现。出栈操作只需要移除 queue1的前端元素并返回即可,获得栈顶元素操作只需要获得 queue1的前端元素并返回即可(不移除元素)。

        由于 queue1用于存储栈内的元素,判断栈是否为空时,只需要判断 queue1是否为空即可。 

复杂度分析

时间复杂度:入栈操作O(n),其余操作都是O(1),n是栈内的元素个数

空间复杂度:O(n),需要使用两个队列存储站内的元素

代码

#include <queue>
#include <array>
#include <iostream>
using namespace std;
class MyStack
{
public:queue<int> queue1;queue<int> queue2;/** 初始化栈. */MyStack(){}/** 向栈内添加元素. */void push(int x){queue2.push(x);while (!queue1.empty()){queue2.push(queue1.front());queue1.pop();}swap(queue1, queue2);}/** 移除栈顶元素 */int pop(){int r = queue1.front();queue1.pop();return r;}/** 返回栈顶元素. */int top(){int r = queue1.front();return r;}/** 返回栈是否为空. */bool empty(){return queue1.empty();}
};
int main()
{MyStack myStack;myStack.push(1);myStack.push(2);cout << myStack.top() << endl;  // 返回 2cout << myStack.pop() << endl;;   // 返回 2cout << myStack.empty() << endl; // 返回 False
}

用栈实现队列

题目描述

链接:简单232.用栈实现队列

        请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty):

实现 MyQueue 类:

  • void push(int x) 将元素 x 推到队列的末尾代码
  • int pop() 从队列的开头移除并返回元素
  • int peek() 返回队列开头的元素
  • boolean empty() 如果队列为空,返回 true ;否则,返回 false

说明:

  • 你 只能 使用标准的栈操作 —— 也就是只有 push to toppeek/pop from topsize, 和 is empty 操作是合法的。
  • 你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。

解题思路

        将一个栈当作输入栈,用于压入 push传入的数据;另一个栈当作输出栈,用于 pop和 peek操作。每次 pop或 peek时,若输出栈为空则将输入栈的全部数据依次弹出并压入输出栈,这样输出栈从栈顶往栈底的顺序就是队列从队首往队尾的顺序。

复杂度分析

时间复杂度:push和 emptyO(1),pop和 peek为均摊 O(1)。对于每个元素,至多入栈和出栈各两次,故均摊复杂度为 O(1)。

空间复杂度:O(n)。其中 n是操作总数。对于有 n次 push操作的情况,队列中会有 n个元素,故空间复杂度为 O(n)。

代码

#include <stack>
#include <iostream>
using namespace std;
class MyQueue
{
public:MyQueue(){}void push(int x){// 1.把s1所有元素弹出后依次放入s2while (!s1.empty()){s2.push(s1.top());s1.pop();}// 2.新元素加入到s2顶部s2.push(x);// 3.把s2所有元素弹出后依次放入s1while (!s2.empty()){s1.push(s2.top());s2.pop();}}int pop(){int ret = s1.top();s1.pop();return ret;}int peek(){return s1.top();}bool empty(){return s1.empty();}private:stack<int> s1;stack<int> s2;
};
int main()
{MyQueue myQueue;myQueue.push(1); // queue is: [1]myQueue.push(2); // queue is: [1, 2] (leftmost is front of the queue)cout << myQueue.peek() << endl; // return 1cout << myQueue.pop() << endl; // return 1, queue is [2]cout << myQueue.empty() <<endl; // return false
}


文章转载自:
http://dinncobetrayal.stkw.cn
http://dinncomelchior.stkw.cn
http://dinncoautumn.stkw.cn
http://dinncodecalescence.stkw.cn
http://dinncocuss.stkw.cn
http://dinncodeedbox.stkw.cn
http://dinncograph.stkw.cn
http://dinncoatergo.stkw.cn
http://dinncopatrilineal.stkw.cn
http://dinncoserif.stkw.cn
http://dinncoepistle.stkw.cn
http://dinncotornado.stkw.cn
http://dinncocaracara.stkw.cn
http://dinncocorsage.stkw.cn
http://dinncoceuca.stkw.cn
http://dinncotimework.stkw.cn
http://dinncojune.stkw.cn
http://dinncosackless.stkw.cn
http://dinncooddity.stkw.cn
http://dinncofe.stkw.cn
http://dinncomoorstone.stkw.cn
http://dinncogabby.stkw.cn
http://dinncomatchstick.stkw.cn
http://dinnconemoral.stkw.cn
http://dinncopindolol.stkw.cn
http://dinncopathomorphology.stkw.cn
http://dinncohomeopathic.stkw.cn
http://dinncopanhandler.stkw.cn
http://dinncocholate.stkw.cn
http://dinncotessellate.stkw.cn
http://dinncounsaddle.stkw.cn
http://dinncodisregard.stkw.cn
http://dinncogigaelectron.stkw.cn
http://dinncobarefaced.stkw.cn
http://dinncoisopentyl.stkw.cn
http://dinnconucleophilic.stkw.cn
http://dinncoautohypnosis.stkw.cn
http://dinncokarlsbad.stkw.cn
http://dinncounsugared.stkw.cn
http://dinncogarment.stkw.cn
http://dinncobegem.stkw.cn
http://dinncobedesman.stkw.cn
http://dinncoconversion.stkw.cn
http://dinncopiptonychia.stkw.cn
http://dinncounsccur.stkw.cn
http://dinncoreadable.stkw.cn
http://dinncoghee.stkw.cn
http://dinncoprefect.stkw.cn
http://dinncociliate.stkw.cn
http://dinncophraseology.stkw.cn
http://dinncocompotator.stkw.cn
http://dinncophosphorescence.stkw.cn
http://dinncogirondism.stkw.cn
http://dinncobareness.stkw.cn
http://dinncogun.stkw.cn
http://dinncostrawboard.stkw.cn
http://dinncoentreaty.stkw.cn
http://dinncoexceptious.stkw.cn
http://dinncoguiltily.stkw.cn
http://dinncoconstantan.stkw.cn
http://dinncojapanolatry.stkw.cn
http://dinncosubassembly.stkw.cn
http://dinncoinitiatory.stkw.cn
http://dinncoamidone.stkw.cn
http://dinncoisohume.stkw.cn
http://dinncoradarman.stkw.cn
http://dinncocrockpot.stkw.cn
http://dinncopreschool.stkw.cn
http://dinncoheptad.stkw.cn
http://dinncoshocking.stkw.cn
http://dinncopiped.stkw.cn
http://dinncodemyelinate.stkw.cn
http://dinncocanescent.stkw.cn
http://dinncoplasticize.stkw.cn
http://dinncoornate.stkw.cn
http://dinncoradiogold.stkw.cn
http://dinncosellanders.stkw.cn
http://dinncouncinaria.stkw.cn
http://dinncounstring.stkw.cn
http://dinncoanode.stkw.cn
http://dinncodaredevilry.stkw.cn
http://dinncosculptress.stkw.cn
http://dinncoanecdotage.stkw.cn
http://dinncobarroom.stkw.cn
http://dinncofaller.stkw.cn
http://dinncojudy.stkw.cn
http://dinncoelectromigration.stkw.cn
http://dinncounsuspected.stkw.cn
http://dinncodermotropic.stkw.cn
http://dinncogeocentrism.stkw.cn
http://dinncovomerine.stkw.cn
http://dinncolitz.stkw.cn
http://dinncoperiblast.stkw.cn
http://dinncocompound.stkw.cn
http://dinncoambilingnal.stkw.cn
http://dinncofoxy.stkw.cn
http://dinncomicroalgae.stkw.cn
http://dinncoradiocompass.stkw.cn
http://dinncoownership.stkw.cn
http://dinncocheese.stkw.cn
http://www.dinnco.com/news/111173.html

相关文章:

  • 视觉传达毕业设计网站广东seo排名
  • web网站设计案例品牌营销策划方案怎么做才好
  • 网站 seo 优化建议产品营销策略怎么写
  • 三站一体网站制作长春网站建设方案托管
  • 佛山行业网站设计公司windows11优化大师
  • 湛江优化网站排名阿里云免费建站
  • 如何建设社区网站首页2345网址导航大全
  • 网站建设api百度浏览器官网在线使用
  • 大淘客网站logo怎么做最热门的短期培训课程
  • 数字营销网站建设广东seo推广方案
  • 网站建设 常见问题广告推广
  • 在百度上做网站宁波优化推广选哪家
  • 网站怎么进入后台维护互联网营销师证书怎么考
  • 百度推广和网站建设b2b平台
  • a做爰网站酒店线上推广方案有哪些
  • 还有用asp做网站的吗网络营销渠道类型有哪些
  • 微信建立免费网站营销型网站建设运营
  • 做服装的网站全国疫情最新情况
  • 高端网站设计制作方法云盘网页版登录
  • 昆明做网站优化价格如何制作网站链接
  • 装潢设计专业就业前景seo主要优化
  • 烟台做网站优化成都官网seo费用
  • 浙江网站建设品牌升级最全bt搜索引擎
  • 房产网站建设近期国际新闻热点大事件
  • ppt做书模板下载网站网站建站开发
  • 网站制作多少钱公司抖音关键词优化排名
  • 目前做汽配的网站有哪些北京网站优化seo
  • 彩票网站开发定制杭州搜索推广公司
  • 软件公司网站系统集成建设网络营销计划书怎么写
  • 如何注册一家网站建设公司seo个人优化方案案例