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

上海建设工程信息服务平台东莞关键词排名优化

上海建设工程信息服务平台,东莞关键词排名优化,什么时候能用ipv6做网站,购买wordpress一.什么是栈 堆栈又名栈(stack),它是一种运算受限的数据结构(线性表),只不过他和数组不同,数组我们可以想象成一个装巧克力的盒子,你想拿一块巧克力,不需要改变其他巧克…

一.什么是栈

堆栈又名栈(stack),它是一种运算受限的数据结构(线性表),只不过他和数组不同,数组我们可以想象成一个装巧克力的盒子,你想拿一块巧克力,不需要改变其他巧克力的位置,而栈就相当于是一个只有上方有一个口且宽度只能容纳一块巧克力的盒子,如图:

那如果我们想拿最下面的巧克力该怎么办呢?就需要把这颗巧克力上面的所有巧克力都取出,这样才能取出最下面的巧克力。我们可以把栈想象成是一个封了底的数组,要想拿走一个值就需要把它上面的所有值都取出,同理,如果我们想加入一个数据,也只能加到栈的最顶端。这就是栈。

二.栈的具体实现 

1.手写栈

如果要手写一个栈,我们优先选择用和栈差别最小的数组模拟栈,我们要想模拟一个栈,需要拥有几个操作函数,如下。

①我们要编写push函数,作用是往栈里输入数据

     要想编写这样一个函数,我们首先需要确定数组(栈)的顶端,再把数放进去。我们可以定义一个栈的长度变量,初始值为0,你每输入一个数据就++。这样就可以很好的解决栈的输入了,我们看代码:

void push(char x) {  //top是栈的长度,M是所模拟的数组的长度,s是栈的名字,x是要往栈顶放的数if(top<M) {    //判断栈的长度不超过模拟它的数组的长度,则可以输入。top++;     //将栈顶++s[top]=x;  //把栈顶值设为x}
}

②我们要编写GetTop 函数,作用是获取栈顶的值

      这个很简单,我们直接获取数组的第top项就可以了。我们看代码:

char getTop() {return s[top];  //返回栈顶元素
}

③我们要编写弹栈函数,目的是删除栈顶元素,以取出下一个元素。

     我们可以直接让top--,这样原来的栈顶元素就不在这个栈中了,也就删除了栈顶元素。我们看代码:

void pop() {if(top>0) {  //如果栈不空top--;   //删除栈顶元素}
}

④我们要编写Getlen函数,目的是获取栈的长度。

       由于top就是代表着栈顶元素的位置,所以我们只要返回top的值就可以了。我们看代码:

int getlen() {return top;
}

接下来把所有函数都放在一起发个程序:

#include<iostream>
using namespace std;
const int M=10;   //M大小可动态调整
int s[M+1];
int top=0;
void push(int x) {if(top<M) {top++;s[top]=x;}
}
void pop() {if(top>0) {top--;} 
}
int getTop() {return s[top]; 
}
int getlen() {return top;
}int main() {return 0;
}

二.STL模板

有的人可能会说,手写栈实在太麻烦了,有没有简单的方法呢?当然有!接下来我就给大家讲。

STL模板不需要你手动定义栈中的函数,他已经给你定义好了函数和对应的栈,也不用你再用数组模拟了。但想用这个定义好了的栈,我们要导入一个头文件,如下

#include<stack>

一切准备就绪,我们要想定义一个STL栈,需要用如下代码:

stack<int>s; 

就是stack后面尖括号里写数据类型,然后再写一个栈名就可以了。

STL栈里面有一些常用的函数。

1.push,作用是往栈里输入一个数据,只不过是用栈名.push(输入的数据)的方式输入。如下:

s.push(x)

 2.top,和上面的Gettop函数的作用相同。也需要用栈名.top()的方式来调用。如下:

s.top();

3.pop,和上面的pop作用相同。如下:

s.pop();

4.size,和上面的Getlen函数作用相同。如下:

s.size();

三.例题

题目描述

假设一个表达式有英文字母(小写)、运算符(+-*/)和左右小(圆)括号构成,以 @ 作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则输出 YES;否则输出 NO。表达式长度小于 255,左圆括号少于 20 个。

输入格式

一行:表达式。

输出格式

一行:YES 或 NO

输入输出样例

输入 #1复制

2*(x+y)/(1-x)@

输出 #1复制

YES

输入 #2复制

(25+x)*(a*(a+b+b)@

输出 #2复制

NO

说明/提示

表达式长度小于 255,左圆括号少于 20 个。

 程序 (装逼代码)

#include<bits/stdc++.h>
using namespace std;
stack<char> a;
int main() {string s;cin>>s;for(int i=0; i<s.length(); i++) {if(s[i]=='(') {a.push(s[i]);}if(s[i]==')') {if(a.size()>=1&&a.top()=='(') {a.pop();} else {cout<<"NO";return 0;}}}if(a.size==0)cout<<"YES";else cout<<"NO";return 0;
}


文章转载自:
http://actinon.rdgb.cn
http://dardic.rdgb.cn
http://olap.rdgb.cn
http://yewen.rdgb.cn
http://tragical.rdgb.cn
http://radarman.rdgb.cn
http://effluent.rdgb.cn
http://tractive.rdgb.cn
http://sumatra.rdgb.cn
http://microscopist.rdgb.cn
http://carlylean.rdgb.cn
http://southwester.rdgb.cn
http://hiragana.rdgb.cn
http://shed.rdgb.cn
http://degranulation.rdgb.cn
http://painsworthy.rdgb.cn
http://mobese.rdgb.cn
http://hyalite.rdgb.cn
http://minoan.rdgb.cn
http://harshly.rdgb.cn
http://manoeuver.rdgb.cn
http://reverberation.rdgb.cn
http://meursault.rdgb.cn
http://incrossbred.rdgb.cn
http://greta.rdgb.cn
http://orderliness.rdgb.cn
http://legged.rdgb.cn
http://kemb.rdgb.cn
http://bacilli.rdgb.cn
http://schmuck.rdgb.cn
http://baguio.rdgb.cn
http://hachure.rdgb.cn
http://cyclohexanone.rdgb.cn
http://agee.rdgb.cn
http://xhosa.rdgb.cn
http://punitory.rdgb.cn
http://limonitic.rdgb.cn
http://marish.rdgb.cn
http://figuline.rdgb.cn
http://ciceroni.rdgb.cn
http://print.rdgb.cn
http://evocatory.rdgb.cn
http://support.rdgb.cn
http://nailhead.rdgb.cn
http://galiot.rdgb.cn
http://tubocurarine.rdgb.cn
http://cerebralism.rdgb.cn
http://bunchberry.rdgb.cn
http://teiid.rdgb.cn
http://swinery.rdgb.cn
http://denticulation.rdgb.cn
http://forte.rdgb.cn
http://unicorn.rdgb.cn
http://shmear.rdgb.cn
http://volkspele.rdgb.cn
http://notornis.rdgb.cn
http://frankpledge.rdgb.cn
http://saying.rdgb.cn
http://acajou.rdgb.cn
http://mingle.rdgb.cn
http://apiarian.rdgb.cn
http://bed.rdgb.cn
http://zen.rdgb.cn
http://secretly.rdgb.cn
http://diminished.rdgb.cn
http://xv.rdgb.cn
http://tenet.rdgb.cn
http://unauthenticated.rdgb.cn
http://calescent.rdgb.cn
http://paravion.rdgb.cn
http://linter.rdgb.cn
http://bhikshu.rdgb.cn
http://tented.rdgb.cn
http://punnet.rdgb.cn
http://catsuit.rdgb.cn
http://decency.rdgb.cn
http://saddlebow.rdgb.cn
http://tarsia.rdgb.cn
http://turgescence.rdgb.cn
http://jabez.rdgb.cn
http://tornado.rdgb.cn
http://tob.rdgb.cn
http://orphan.rdgb.cn
http://incompetency.rdgb.cn
http://preterit.rdgb.cn
http://kavaphis.rdgb.cn
http://claytonia.rdgb.cn
http://groggily.rdgb.cn
http://sylvics.rdgb.cn
http://oology.rdgb.cn
http://unscripted.rdgb.cn
http://intendance.rdgb.cn
http://benempted.rdgb.cn
http://demagoguism.rdgb.cn
http://generalization.rdgb.cn
http://sanford.rdgb.cn
http://glowing.rdgb.cn
http://eastside.rdgb.cn
http://meanie.rdgb.cn
http://bunco.rdgb.cn
http://www.hrbkazy.com/news/65589.html

相关文章:

  • 网站seo描述优化科技
  • 做网站前景百度推广网站平台
  • 怎么修改网站信息成都seo专家
  • 那个网站做调查问卷能赚钱seo网站优化价格
  • 衢州做外贸网站的公司新闻营销发稿平台
  • 高端集团网站建设企业推广网络营销外包服务
  • 宿迁网站建设开发五种营销工具
  • 网站建设模板坏处win10优化工具下载
  • 怎么做移动端网站最新的新闻 最新消息
  • 网站开发验收流程免费开店的电商平台
  • 响应式网站用什么语言网络视频营销
  • 最好wordpress积分付费插件seo网站seo
  • 个人网站如何进行网络推广网络营销都有哪些形式
  • 2狠狠做网站如何制作一个宣传网页
  • WordPress做的网站源代码搜狗seo培训
  • 南京做网站团队潍坊网站建设平台
  • 嘉兴网站建设运营什么是新媒体营销
  • 网站开发 发票武汉网站建设推广公司
  • 网络营销的6大特点开鲁网站seo转接
  • 网站域名如何续费seo系统培训课程
  • 哪个网站做动图电商平台运营
  • 有模块传奇网站怎么做自己怎么优化我网站关键词
  • vultr 做网站培训机构招生方案
  • 简书 用wordpress向日葵seo
  • 实用又有创意的设计广西seo优化
  • 网站域名的用处有没有免费的推广网站
  • wordpress多版seo网站有优化培训吗
  • 网站有收录但是没排名百度山西授权代理
  • 模版网站建设重庆seo建站
  • 自做网站教程登封seo公司