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

台州住房和城乡建设部网站网站域名与网站首页网址

台州住房和城乡建设部网站,网站域名与网站首页网址,wordpress免费主题怎么用,江苏州 网站制作今天来讲讲栈 栈是什么#xff1f; 老样子#xff0c;先来看一道题#xff1a; 【栈】栈的基本操作 描述 栈的定义#xff1a;栈是一种特殊的表这种表只在表头进行插入和删除操作。因此#xff0c;表头对于栈来说具有特殊的意义#xff0c;称为栈顶。相应地#xff0…今天来讲讲栈 栈是什么 老样子先来看一道题 【栈】栈的基本操作 描述 栈的定义栈是一种特殊的表这种表只在表头进行插入和删除操作。因此表头对于栈来说具有特殊的意义称为栈顶。相应地表尾称为栈底。不含任何元素的栈称为空栈。 栈的逻辑结构假设一个栈 SS 中从顶到底的元素为 a_n,a_{n-1},\ldots,a_1an​,an−1​,…,a1​则称 a_1a1​ 为栈底元素a_nan​ 为栈顶元 素。栈中的元素按 a_1,a_2,..,a_{n-1},a_na1​,a2​,..,an−1​,an​ 的次序进栈。在任何时候出栈的元素都是栈顶元素。换句话说栈的修改是按后进先出的原则进行的。因此栈又称为后进先出 (Last In First Out) 表简称为 LIFO 表。所以只要问题满足 LIFO 原则就可以使用栈。 举个生活中的例子比如洗碗先洗的碗在底层后面洗的碗会叠在先洗的碗的上面。这样在使用的时候最后洗的碗就会先拿。 在程序实现上栈也是用数组来存放的需要一个数组下标变量来控制数据在数组的存入和读取等操作。 由于 C 的 STL 本身提供了栈这种数据结构你只要学会使用 STL 的栈操作就行了。 后面学的递归回溯算法递归会调用系统栈是来实现这个是递归内部实现我们不用去操作只是理解栈这个结构会帮助我们更好地理解递归这个算法。当然栈本身在一些题目上也会用到。 首先看一下 C 栈的方法的基本用法 push()向栈内压入一个成员 pop()从栈顶弹出一个成员 empty()如果栈为空返回true否则返回false top()返回栈顶但不删除成员 size()返回栈内元素的大小 普通栈的操作 #includeiostream #includestack //使用栈需要的头文件 using namespace std; int x; int main(){stack intstk; //定义一个整数类型的栈变量 //入栈for(int i0;i50;i){cinx;stk.push(x); // 数据入栈 }cout栈的大小:stk.size()endl;while(!stk.empty()){coutstk.top()endl; //取出栈顶数据 stk.pop(); //删除栈顶数据就是出栈 }cout栈的大小:stk.size()endl;return 0; }结构体栈的使用 #includeiostream #includestack //使用栈需要的头文件 using namespace std; struct people{int sg,tz;char xb; }; people x; int n; int main(){stack people stk; //定义一个结构体类型的栈变量 //入栈cinn;for(int i0;in;i){cinx.sgx.tzx.xb; stk.push(x); // 结构体数据入栈 }cout栈的大小:stk.size()endl;while(!stk.empty()){x stk.top(); //取出栈顶数据coutx.sg x.tz x.xbendl; //取出栈顶数据 stk.pop(); //删除栈顶数据就是出栈 }cout栈的大小:stk.size()endl;return 0; } 现给定一组栈的操作入栈与出栈要求按顺序输出出栈的数和最终留在栈里的数。 输入 一行若干个正整数以0结尾。 操作有如下几种 1 x表示将 x 入栈2表示将栈顶弹出。 输出 第一行按顺序输出出栈的数无则输出空行 如果出现栈满并且还有数据进栈则单行输出the stack is full! 如果出现栈空并且还有数据出栈则单行输出the stack is empty! 最后一行如果栈里还有数据则输出栈里的数注意出现栈满情况时也要输出栈里剩余的数。 输入样例 1  1 3 1 2 2 1 1 2 0 输出样例 1 2 1 3输入样例 2  1 3 2 2 1 3 1 4 1 5 1 6 0 输出样例 2 3the stack is empty! 提示 对于 100% 的数据栈的最大容量为 300每次需要入栈的正整数小于等于 10^9。 来源 lzy 首先我来讲一下展示怎么样的东西 这里有一个羽毛球筒 |  | |  | |  | |  | — 现在我把一号球放进去 |  | |  | |  | |1| — 现在我把二号球放进去 |  | |  | |2| |1| — 现在我们要取出一个球我们只能先取出2再取出1先进入的数字反而最后出来也就是先进后出考试经常考哦 |  |       ——2取出 |  | |  | |1| — |  |       ——2取出 |  |       ——1取出 |  | |  | — 这就是栈像一个羽毛球筒 栈怎么写 定义是这样的 stackint q; //其中里的数据类型代表q的类型 //比如现在q为int型 //如果把int改为longlongq就是longlong型 其他的操作室这样的 q.size()//求q的大小元素个数比如栈里有1和2元素个数就是2 !q.empty()//判断q是否为空空就是没有元素如果空了就返回1真否则返回2假 q.top();//获取栈顶的数字比如刚刚的羽毛球筒放了1和2用这个就会返回2 q.pop();//弹出栈顶把栈顶删掉将最后一个放入的2拿出就可以用这个 q.push(x);//入栈也就是把x跟球一样放进栈里 //注意了不管你怎么用都要加个括号 //q.size()这种返回数字的东西是可以当数字来用的 //比如if(q.size()300) ,就是判断q的元素个数是不是等于300 //aq.top();就是a栈顶的那个数字 所以我们就可以解出最开始的那道题了   #includebits/stdc.h using namespace std; int main(){stackint q;//定义 long long a,x;//定义a读的是前面的1或2 do{cina;//读入 if(a1){//a1说明要入栈 if(q.size()300){//如果说栈已经满了 coutendlthe stack is full!endl;//输出 while(!q.empty()){//循环栈没空就一直循环 coutq.top() ;//输出栈顶 q.pop();//弹出栈顶为下一次的输出做准备 } return 0;}//否则就可以正常入栈了 cinx;//读入 q.push(x);//入栈 }else if(a2){//如果要弹出 if(q.empty()){//如果栈空了就弹不了了 coutendlthe stack is empty!;//输出 return 0;}coutq.top() ;//否则输出栈顶 q.pop();//弹出栈顶 }}while(a!0);//a0就是要停止输入了 coutendl;while(q.size()!0){//循环只要栈的元素个数0就一直循环 coutq.top() ;//输出 q.pop();//弹出 }return 0; } 你知道我写了多久吗写了20分钟。这还不值得你给我点个赞吗
http://www.zqtcl.cn/news/619408/

相关文章:

  • 专做宝宝的用品网站武昌网站建设价格多少钱
  • 福田网站设计处理智慧团建app官网下载
  • 福州网站建设效果开发公司经营管理存在的问题
  • 如何自己做企业网站织梦做的网站织梦修改网页
  • 医院网站开发兼职怎么做可以支付的网站
  • 网站开发大概需要多久湛江招聘网最新招聘
  • 免费建网站 手机网站深圳网站设计(深圳信科)
  • 辽宁做网站的公司工作室网站建设的意义
  • 南京网站搜索排名免费企业网站空间
  • 手机要访问国外网站如何做附近学电脑在哪里报名
  • 免费建网站哪个网好中国建设银行信用卡黑名单网站
  • 网页设计好看的网站中小型网站建设 教案
  • 优秀网站设计案例行业内做网站的公司排名
  • 个人备案网站能做商城吗长沙app制作公司哪家好
  • 成都网站建设方案优化旺道seo怎么优化网站
  • 九江县建设规划局网站wordpress多个博客
  • 绵阳住房和城乡建设局网站做服装外贸的网站
  • 福建省华荣建设集团有限公司网站建设网站西安
  • 做视频网站程序多少钱网站内链有什么用
  • 建设企业网站模板联享品牌网站建设
  • 网站建设耂首先金手指提升网站访问速度
  • 为什么备案关闭网站网站seo推广招聘
  • 建设企业网站的重要性城乡建设厅官方网站
  • 网上有做口译的网站么怎样手机做网站教程
  • 孵化器网站平台建设网站一直建设中
  • 企业网站建设的方案书网站镜像 cdn
  • 淘宝做网站的都是模板泉州模板建站公司
  • 清理网站数据库网站服务器租一个月
  • wordpress免费简约主题搜索引擎优化的英文
  • 瑞安门户网站建设怎么建设自己网站首页