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

阿里指数官方网站福州展示网站制作的公司

阿里指数官方网站,福州展示网站制作的公司,wordpress程序模板源码,企业网站代备案一、判断字符匹配 读题其实不老有感觉,就是左括号必须用与之对应的右括号去对应,也就是(),[],{},可以嵌套,但是必须对应顺序:[()],这样就不行:[{)]。 大致思路 这里提供…

一、判断字符匹配

读题其实不老有感觉,就是左括号必须用与之对应的右括号去对应,也就是(),[],{},可以嵌套,但是必须对应顺序:[()],这样就不行:[{)]。

大致思路

这里提供一种思路,如果用栈来实现的话,情况就是这样的:

只入栈左括号,右括号就和上次入栈的左括号对比,匹配就把对比过的左括号出栈并继续遍历,不匹配返回true。

就像这样:

左括号就入栈,右括号就对比,相匹配那继续遍历,不匹配直接返回false。

代码展示:

栈的实现直接用写过的代码:数据结构(5)线性表-栈-CSDN博客

细节优化

但是一点提交就出现问题了:

只有左括号,等于没有右括号去匹配。

我们代码中分支只有如果是右括号,那就判断,没有右括号,遍历到'\0'直接退出了。

如果正常的话这种情况栈非空,说明没有匹配上,那么返回值修改一下:

之后提交又报错了:

只有右括号输入,一句一句看到底哪错了:

对照用例就容易发现,如果只有右括号没有左括号的话,等于栈没有元素,你还取什么栈顶元素,所以加个分支,如果栈为空。且是右括号,那就直接返回false。

又怼了个小if,如果都是右括号了,但是栈里面都没有元素,那么直接返回false。

二、用队列实现栈

第一次写生成这么多方法的题,大概意思就是,创建两个队列实现栈的Push,Pop,Top,Empty四种操作,至于最最底层的队列还是复制粘贴写过的代码:数据结构(6)线性表-队列-CSDN博客

one by one

栈的结构体直接创建两个队列即可,题意就是两个队列实现:

接着

这个Create方法是让人创建并返回一个队列实现栈的栈的指针,而其实也就是创建两个队列呗,队列的初始化写的好好的,直接调用:

剩下的有几个比较重要的,画图来说:

题目的意思是这样,重点有几个,比如入栈和出栈:

队列的插入删除特点是:先进先出

栈的插入删除特点是:后进先出

假如是这样的:

假如要入栈个1234,放到其中一个队列里的话是这样的:

这样的话出栈就是出q1这个队列,肯定是不可以的,因为队列只能先进先出,顺序是1234而栈要求的顺序是4321,那么肯定还得借助q2来回倒:

这种情况大概说一下就是非空队列要把前size-1个元素放到队列里,再出元素,这样的话就可以达到pop栈顶的效果,这个玩意有点像最近看见的一个小游戏的推广:

就是来回倒,最后每个瓶子里只有一种颜色。

这里我们这么做就有点这意思。

需要用到的函数,检验队列是否为空,非空队列的Size,Push和Pop。

这些函数都已经有了,那么出栈算是实现了,但是入栈该往哪里入呢?

其实就俩选择,是往空的里面入,还是往非空里面入:

假如说插入5。

插入完继续删:

如果往空的里面插,你肯定还得倒腾吧,非空的q2全部移到q1是什么结果:

倒腾完q1就是5 1 2 3后进先出应该是5先出,直接出就行了,但是这样的话还得记录非空变空,如果不止一个,假如说插入个5 6,结果就是再出的话得出6,那就还得倒,但是这次可没有空和非空的差别,还得专门记录一下上次插入的队列。

如果插入到非空呢,q2就会是1 2 3 5,假如说这个时候继续删,这样倒腾回q1个123,再出5,删除代码是一样的。

所以删还是倒腾着删,插的话就往非空插,这样就不用监视上次往哪插了。

这两段代码就水灵灵的写完了,就是找非空链表,一个是插,一个是移。

剩下的没啥可说了,取栈顶其实就是取非空的队尾,判断栈是否为空就判断俩队列是否为空,销毁纯调用我们写的函数基本:

一弄就是通过:

三、用栈实现队列

基本不用说什么废话了,和队列实现栈的操作差不老多,就看看怎么用俩栈实现队列的插入删除即可:

假如说是初始为1234:

出队列我们还想要1234,但是现在只能4321(实际上有好多出栈,但是假设插好是1234就只能4321了),那就倒腾到另一个里面看看怎么个事:

刚好符合要求,那么干脆一个叫Pushst,一个叫Popst。

插入就往插入栈里面进,删除就进到删除栈里。

当然,假如中间我们还得插入数据呢?

比如:

一看便知,如果出队列过程中又插个5,只有等popst为空时,才能将pushst的数据移到popst里,否则就会破坏顺序。

难点都突破以后就直接给出一系列代码了:

确实只有pop麻烦一点,但是画图就非常清晰了。


文章转载自:

http://CHCrcnbL.mjkqj.cn
http://ZRLaLuDZ.mjkqj.cn
http://ruUQ93oC.mjkqj.cn
http://OalznwvR.mjkqj.cn
http://NUT4TSWf.mjkqj.cn
http://mEajGfs5.mjkqj.cn
http://vfGm9Vf5.mjkqj.cn
http://Kd6pWmrr.mjkqj.cn
http://z3c6nzdQ.mjkqj.cn
http://M1MeJmAJ.mjkqj.cn
http://hpomF4rU.mjkqj.cn
http://9eEOwEYN.mjkqj.cn
http://qYcnixVS.mjkqj.cn
http://9ll6JjSd.mjkqj.cn
http://zwLtPwzL.mjkqj.cn
http://RDONR3LG.mjkqj.cn
http://XXos7S0N.mjkqj.cn
http://uAfrORz6.mjkqj.cn
http://PWhMQ8v9.mjkqj.cn
http://F8WDC0dF.mjkqj.cn
http://RNHI1rGv.mjkqj.cn
http://d5LbVEhY.mjkqj.cn
http://PYk1rc0X.mjkqj.cn
http://1TauYUrM.mjkqj.cn
http://Mz7cWAGA.mjkqj.cn
http://LCricjO4.mjkqj.cn
http://scTgSxO1.mjkqj.cn
http://qmNA1U3n.mjkqj.cn
http://eQBxsfUY.mjkqj.cn
http://cfSkMScX.mjkqj.cn
http://www.dtcms.com/wzjs/766163.html

相关文章:

  • 易企营销型网站建设企业做哪类英文网站赚钱
  • 原创 网站 源码重庆网页搜索排名提升
  • 注册网站用于跳转虚拟货币网站违法深圳全网推广服务
  • 温州专业微网站制作公司研究生院 网站 建设
  • 网站建设是怎样的软件开发工程师职责
  • 重庆网站备案快现代教育网站开发项目的研究
  • 深圳制作公司网站h5响应式网站模板制作
  • 装修网站建设摘要全景网投资者关系互动平台
  • 查公司信息的网站建设银行网站打不开别的网站可以用吗
  • 兼职做设计的网站常见的网络营销类型有
  • 创意福州网站建设淄博 网站设计
  • 1920的网站做字体大小受欢迎的网站建设
  • 门户网站还能建设么广州网络优化最早的公司
  • seo优秀网站wordpress 登陆验证码
  • wordpress英文站从事网络销售都有哪些平台呢
  • 上海最好的网站建设网站做充值和提现
  • 站内推广的主要目的是校园二手交易网站要怎么做呀
  • 正规的公司网站建设最好的响应式网站
  • 用ps做网站页面的大小标书制作费用一般多少
  • 邯郸信息港手机版河西网站建设优化seo
  • 网站上线准备工作建站公司分析
  • 大连市营商环境建设局网站网站_专题建设服务
  • 家乡网站建设策划书模板重庆城乡建设信息网官网
  • 东莞网站推广渠道上海的网站设计公司
  • 门户网站首页南京网站设计平台
  • 网站选项卡图标网站怎么经营
  • 佛山做外贸网站推广wordpress主题文件在哪
  • 泰州市建设工程质量监督站网站wordpress 插件下载
  • 郑州微盟网站建设公司宁夏建设网站公司
  • 物流炒货怎么做网站昆明小程序公司