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

小程序制作网站网站建设策划书主要内容

小程序制作网站,网站建设策划书主要内容,儿童摄影网站源码,网站系统建设招标文件栈与队列以底层容器完成所有的工作&#xff0c;对外提供统一接口&#xff0c;且底层容器是可插拔的 1. 用栈实现队列 // 用两个栈实现队列// in入栈// out出栈 实现FIFOstack<int> stin;stack<int> stout;MyQueue() {}void push(int x) {stin.push(x);}int pop() …

栈与队列以底层容器完成所有的工作,对外提供统一接口,且底层容器是可插拔的

1. 用栈实现队列

    // 用两个栈实现队列// in入栈// out出栈 实现FIFOstack<int> stin;stack<int> stout;MyQueue() {}void push(int x) {stin.push(x);}int pop() {// 将元素放入out准备出栈if (stout.empty()) {while (!stin.empty()) {int a = stin.top();stin.pop();stout.push(a);}   } int b = stout.top();stout.pop();return b;}int peek() {// if (!stout.empty()) return stout.top();while (!stin.empty()) {int a = stin.top();stin.pop();stout.push(a);}return stout.top();}bool empty() {if (stin.empty() && stout.empty()) return true;return false;}

2. 用队列实现栈

可以用两个队列实现栈,也可以通过改变队列中元素的排列用一个队列实现栈来提高空间利用,以下是用一个队列实现栈的方法

    // 使用一个队列实现栈需要记录队列中元素的数量// 以此知道栈顶元素的位置int count = 0;queue<int> q;MyStack() {}// 用一个队列实现栈void push(int x) { q.push(x);count++;}int pop() {// 队列不为空if (count > 0) {int a = count-1;while (a--) {int b = q.front();q.pop();q.push(b);}}int res = q.front();q.pop();count--;return res;}int top() {// 直接调用pop()获取栈顶元素,记得还要将元素入栈,元素数量+1int res = this->pop();q.push(res);count++;return res;}bool empty() {if (count == 0) return true;return false;}

3. 有效的括号

这是一个对栈的应用:

    1. 遍历字符串遇到左括号就将对应右括号放入栈中,遇到匹配的右括号就将栈顶元素出栈,如果遍历完字符串刚好栈为空,说明是有效字符串

    2.如果在遍历的过程中发现下一个右括号和栈顶括号不匹配说明括号闭合失败,不是有效字符串

    3. 如果在遍历过程中发现栈是空的,说明前面有单独的右括号,也不是有效字符串

        // 由题意得字符数量一定是偶数if (s.size() % 2 != 0 ) return false;stack<char> st;for (int i = 0; i < s.size(); i++) {if (s[i] == '(') st.push(')');else if (s[i] == '[') st.push(']');else if (s[i] == '{') st.push('}');// 如果没有左括号或者括号不能闭口(与栈顶元素不相同)不是有效字符串else if (st.empty() || st.top() != s[i]) return false;// else st.pop();}if (st.empty()) return true;return false;

4. 删除字符串中所有相邻重复项

本题也是对栈的应用:

遍历字符串将元素依次入栈,如果当前元素和栈顶元素执行出栈操作,且元素不入栈相当于完成了删除操作,最后栈内的元素就是答案

    string removeDuplicates(string s) {if (s.size() == 1) return s;else if(s.size() == 2) {if (s[0] == s[1]) return "";return s;}stack<char> st;// 执行删除操作for (int i = 0; i < s.size(); i++) {if (!st.empty() && st.top() == s[i]) {st.pop();continue;}st.push(s[i]);}// 收集结果string res;while(!st.empty()) {char a = st.top();st.pop();res+=a;}// 需要按照原字符串顺序输出reverse(res.begin(), res.end());return res;}


文章转载自:

http://68NE8pxw.gnkbf.cn
http://RTsNrJU6.gnkbf.cn
http://cxREb1uy.gnkbf.cn
http://VlkP2Zqw.gnkbf.cn
http://72bOJtLa.gnkbf.cn
http://4RN5D0YC.gnkbf.cn
http://QiKqIi9l.gnkbf.cn
http://4ZW6ASYG.gnkbf.cn
http://TG4jCq4V.gnkbf.cn
http://08P9Ho58.gnkbf.cn
http://IlpQlEZN.gnkbf.cn
http://tgyVwB7p.gnkbf.cn
http://UFvhuYAw.gnkbf.cn
http://GK94g6nG.gnkbf.cn
http://GqErtZSV.gnkbf.cn
http://vt2TK9bY.gnkbf.cn
http://RK9Tcc6q.gnkbf.cn
http://Ub35ibKH.gnkbf.cn
http://4pcW2WLS.gnkbf.cn
http://EHZ0cMi0.gnkbf.cn
http://kNkdaN38.gnkbf.cn
http://boAYINsr.gnkbf.cn
http://CH6YXvJ1.gnkbf.cn
http://WvVj1uLX.gnkbf.cn
http://fMU1rG5p.gnkbf.cn
http://uBogEfER.gnkbf.cn
http://vuW129nP.gnkbf.cn
http://ObCyOJw9.gnkbf.cn
http://Hz51ewCv.gnkbf.cn
http://yQQ7SNGl.gnkbf.cn
http://www.dtcms.com/wzjs/720192.html

相关文章:

  • 惠州网站开发wordpress更换了域名
  • wordpress网站更新无线设置网站
  • 网站建设客户开发方法wordpress自动挣钱
  • 上海营销型网站建设团队wordpress cdn sae jquery
  • 网站手机端建设比较经典的营销案例
  • 网站维护与建设ppt网站开发软件dw
  • 自己做网站需不需要钱网站开发 icon
  • 子域名做微信开放平台网站应用家具设计大师
  • 安徽响应式网站推荐中国建筑劳务分包平台
  • 信用网站建设情况wordpress网站价格
  • 北京网站建设课程培训班网站开发进度安排
  • 免费中文网站模板html华为开发平台
  • 邮箱163企业邮箱seo 网站文案模板
  • 视频解析网站是怎么做的建设企业网站都需要啥
  • win7用iis搭建网站个人网页设计作业
  • 哈尔滨网站制作公司哪家好大数据系统
  • 怎样建网站平台经典软文案例和扶贫农产品软文
  • 卖网站赚钱刚刚发生 北京严重发生
  • 网站风格包括什么分类目录网站做谷歌联盟
  • 西双版纳网站制作公司硬件开发设计公司
  • 做网站一共需要多少钱好用的wordpress
  • 网站模板小偷as3 xml 网站模板 下载
  • 金普新区城乡建设局网站取消wordpress邮箱认证
  • 电商网站建设c微fzsszai做ppt用什么软件最好
  • 高埗镇做网站想做外贸怎么找客户
  • 营商环境建设监督局网站wordpress 七牛云 ssl
  • 聊城做网站的公司效果118论坛网址之家
  • 大连住房和城乡建设网站宁波seo营销平台
  • 外贸模板网站网站建设一屏式网站
  • 域名转移影响网站访问吗室内设计接单网站