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

郑州做网站多少钱培训教育类网站模板下载

郑州做网站多少钱,培训教育类网站模板下载,pc端网站建设哪里有,如何设计网页模板一、栈Stack 1.1 概念 一种特殊的线性表#xff0c;只允许在固定的一段进行插入和删除元素操作。进行数据的插入和删除操作的一段称为栈顶#xff0c;另一端称为栈低。栈中的元素遵循后进先出 LIFO(Last In First Out)的原则。 进栈 出栈 举例#xff1a;在word中#xf…一、栈Stack 1.1 概念 一种特殊的线性表只允许在固定的一段进行插入和删除元素操作。进行数据的插入和删除操作的一段称为栈顶另一端称为栈低。栈中的元素遵循后进先出 LIFO(Last In First Out)的原则。 进栈 出栈 举例在word中如果要想进行添加、删除。修改相关信息则当用户选择撤销时程序将会返回上一个操作状态。 1.2 栈的使用 栈的方法及其功能 方法 功能Stack()构造一个空栈E push(E e)将e入栈并返回eE pop()将栈顶元素出栈并返回E peek()获取栈顶元素int size()获取栈中有效元素个数boolean empty()检测栈是否为空 public static void main(String[] args) {StackInteger s new Stack();s.push(1);s.push(2);s.push(3);s.push(4);System.out.println(s.size()); // 获取栈中有效元素个数--- 4System.out.println(s.peek()); // 获取栈顶元素--- 4s.pop(); // 4出栈栈中剩余1 2 3栈顶元素为3System.out.println(s.pop()); // 3出栈栈中剩余1 2 栈顶元素为3if(s.empty()){System.out.println(栈空);}else{System.out.println(s.size());} } 1.3 模拟实现栈 Stack继承了VectorVector和ArrayList类似都是动态的顺序表不同的是Vector是线程安全的. public class MyStack {public int[] elem;public int usedSize;public MyStack() {this.elem new int[10];}public void push(int val) {if(isFull()) {this.elem Arrays.copyOf(elem,2*elem.length);}elem[usedSize] val;}private boolean isFull() {return usedSize elem.length;}public int pop() {if(isEmpty()) {throw new EmptyStackException(pop()空栈异常);}int val elem[usedSize - 1];usedSize--;return val;}public int peek() {if(isEmpty()) {throw new EmptyStackException(peek()空栈异常);}return elem[usedSize - 1];}private boolean isEmpty() {return usedSize 0;} } 1.4 栈的应用场景 1. 改变元素的序列 若进栈序列为 1,2,3,4 进栈过程中可以出栈则下列不可能的一个出栈序列是 A: 1,4,3,2     B: 2,3,4,1     C: 3,1,4,2     D: 3,4,2,1 解析错误出栈序列的解析如下正确出栈序列解析同下 2.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈然后再依次出栈则元素出栈的顺序是 。 A: 12345ABCDE     B: EDCBA54321      C: ABCDE12345      D: 54321EDCBA 解析根据栈中元素遵循先进后出的原则得出栈顺序为EDCBA54321 2. 将递归转化为循环链表 // 递归方式 void printList(Node head){if(null ! head){printList(head.next);System.out.print(head.val );} } // 循环方式 void printList(Node head){if(null head){return;}StackNode s new Stack();// 将链表中的结点保存在栈中Node cur head;while(null ! cur){s.push(cur);cur cur.next;}// 将栈中的元素出栈while(!s.empty()){System.out.print(s.pop().val );} } 3. 括号匹配 首先判断获取的字符是否是左括号如果是则插入到栈中如果栈为空则返回false如果前两种情况都不是则此时为右括号然后判断栈顶元素和当前字符进行匹配若满足条件则删除栈顶元素否则返回false。最后当字符串遍历完后如果栈中还有元素则此时左括号多返回false。如果栈为空则返回true。 class Solution {public boolean isValid(String s) {//创建一个空栈StackCharacter stack new Stack();for(int i 0;i s.length();i) {//遍历字符串获取字符char ch s.charAt(i);//如果ch为左括号则放入栈中if(ch ( || ch [ || ch { ) {stack.push(ch);}else {//此时ch为右括号//情况1栈中没有左括号进行匹配右括号多if(stack.isEmpty()){return false;}//情况2栈中右左括号需判断栈顶ch2右括号是否和ch右括号匹配char ch2 stack.peek();if( ch2 ( ch ) || ch2 [ ch ] || ch2 { ch } ) {stack.pop();}else {//此时栈不为空但括号不匹配return false;}}}//字符串已经遍历完了若栈不为空则左括号多if(!stack.isEmpty()) {return false;}return true;} } 4. 逆波兰表达式 class Solution {public int evalRPN(String[] tokens) {StackInteger stack new Stack();for(String str : tokens) {if(isNumber(str)) {int x Integer.parseInt(str);stack.push(x);}else {int val2 stack.pop();int val1 stack.pop();switch (str) {case :stack.push(val1 val2);break;case -:stack.push(val1 - val2);break;case *:stack.push(val1 * val2);break;case /:stack.push(val1 / val2);break;}}}return stack.pop();}private boolean isNumber(String str) {return !(str.equals()|| str.equals(- )|| str.equals(*)|| str.equals(/));} }5. 出栈入栈次序匹配 解析遍历pushV数组每次入栈一个元素后将栈顶元素与popV中下标为j所对应的元素进行比较如果一样则可以出栈不一样i。在遍历时可能会出现多个相同所以需用到循环 public class Solution {/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可** * param pushV int整型一维数组 * param popV int整型一维数组 * return bool布尔型*/public boolean IsPopOrder (int[] pushV, int[] popV) {// write code hereStackInteger stack new Stack();int j 0;for(int i 0;i pushV.length;i) {stack.push(pushV[i]);while(!stack.empty() j popV.length stack.peek() popV[j]) {stack.pop();j;}}return stack.empty();} } 6.最小栈 class MinStack {public StackInteger stack;public StackInteger minStack;public MinStack() {stack new Stack();minStack new Stack();}public void push(int val) {stack.push(val);if(minStack.isEmpty() || val minStack.peek()) {minStack.push(val);}else {return;}}public void pop() {if(minStack.isEmpty()) {return;}int popVal stack.pop();if(popVal minStack.peek()) {minStack.pop();}}public int top() {if(minStack.isEmpty()) {return -1;}return stack.peek();}public int getMin() {if(minStack.isEmpty()) {return -1;}return minStack.peek();} }
http://www.hkea.cn/news/14485232/

相关文章:

  • 汽车贸易网站建设方案技术支持 上海做网站
  • 网站怎么做直播功能沧州网站建设定制价格
  • 竹子建站公司手机网站开发一个多少钱
  • 网站怎么上传网站吗php网站开发工程师岗位职责
  • 一个网站做多有几种颜色网站后台域名登陆软件
  • 深圳公司做网站wordpress嵌套海洋cms
  • 做什么网站最赚钱免费建网页
  • wordpress建立的网站吗佛山网站建设公司哪家便宜
  • 邢台网站建设公司中企动力网站建设合同
  • 用jsp做留言板网站网页颜色搭配案例
  • 军队工程建设项目招投标网站网络事件营销
  • 免费行情网站app页面wordpress插件 二次开放
  • 汨罗网站建设盐城网站开发基本流程
  • 沈阳哪里有教做网站的wordpress 头像加速
  • 网站建设概念股自己的淘宝网站怎么建设
  • 什么是网站建设规划书vs做网站怎么调试
  • 武进常州做网站wordpress 上传主题
  • 有哪些建设网站的大公司用dw代码做美食网站
  • qq刷赞网站推广大连房产网
  • 免费做数学题的网站建立良好的公共秩序教学设计
  • 网站建设基础型公司常用邮箱
  • psd做网站切片柳州做网站哪家好
  • 做网站导流通用软件开发
  • 网站建设与管理大作业总结网站建设完成外网无法访问
  • 即墨做砍价小程序最好的网站嵌入式开发用什么软件
  • xuzhou公司网站制作百度首页 百度
  • 建设银行此网站的安全证书有问题.中小企业建网站注意
  • 消防网站建设目标亿恩 网站备案
  • 福田外贸网站建设建网站需不需要服务器
  • c2c网站系统品牌seo公司