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

北京好一点的微网站开发公司苏宁易购网站建设情况

北京好一点的微网站开发公司,苏宁易购网站建设情况,如何申请二级域名,网站图片特效代码文章目录 前言什么是栈(Stack)栈方法栈的模拟实现链表也可以实现栈逆波兰表达式逆波兰表达式在栈中怎么使用 前言 什么是栈(Stack) 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0…

文章目录

  • 前言
  • 什么是栈(Stack)
  • 栈方法
  • 栈的模拟实现
  • 链表也可以实现栈
  • 逆波兰表达式
    • 逆波兰表达式在栈中怎么使用


前言

什么是栈(Stack)

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。遵循先进后出的原则。

类似于:一串羊肉串,后串进去的肉最先被吃到。
底层是数组
在这里插入图片描述

栈方法

在这里插入图片描述

栈的模拟实现

//接口
public interface IStack {//放元素void push(int x);//取元素int pop();//查看元素int peek();//栈大小int size();//判断满没满boolean empty();//判断空没空boolean full();
}package stackdemo;
import java.util.Arrays;
//类实现接口
public class MyStack implements IStack{private int[] elem;//栈的底层是一个数组private int usedSize;//有效数据的个数private static final int DEFAULT_CAPACITY = 10;//自定义数组长度//构造方法public MyStack(){elem = new int[DEFAULT_CAPACITY];}//放栈顶元素@Overridepublic void push(int x) {//先检查满没满if (full()){//满了,调用数组拷贝扩容空间elem = Arrays.copyOf(elem,elem.length*2);}//没满就放xelem[usedSize] = x;usedSize++;}//取出栈顶元素@Overridepublic int pop() {if (empty()){//抛异常throw new EmptyException("栈空了!");}int old = elem[usedSize-1];//usedSize往栈底移动一格usedSize--;//相当于删除//如果是引用类型//elem[usedSize] = null;return old;}//查找栈顶的元素,跟pop不一样的是,peek不用删除噢,只是返回栈顶那个元素噢@Overridepublic int peek() {if (empty()){//抛异常throw new EmptyException("栈空了!");}return elem[usedSize-1];//}/算栈的大小@Overridepublic int size() {return usedSize;}//判断栈空没空@Overridepublic boolean empty() {return usedSize == 0;}//判断栈满没满@Overridepublic boolean full() {if (usedSize == elem.length){return true;}return false;}
}
//抛异常
public class EmptyException extends RuntimeException {//构造方法public EmptyException(String msg){super(msg);}
}

链表也可以实现栈

单链表
在这里插入图片描述
双向链表
从头入 从头出都可以
在这里插入图片描述

  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
    答案:C

  2. 一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺
    序是( )。
    A: 12345ABCDE B: EDCBA54321 C: ABCDE12345 D: 54321EDCBA
    答案:B

逆波兰表达式

下面举的例子是后缀表达式,就是把符号移到括号右边。

怎么转换成逆波兰表达式

逆波兰表达式在栈中怎么使用

1.把式子转换成逆波兰表达式后
2.遇到数字就放栈里面
2.当遇到非数字字符,取出栈里面最顶上的两个元素,第一个元素放在字符右边,第二个放左边。
3.得到的结果又放进栈里面
4.再继续上面步骤

逆波兰表达式演示视频

class Solution {public int evalRPN(String[] tokens) {Stack<Integer> stack = new Stack<>();for(String s : tokens) {//不是操作符就是数字if (!isOperation(s)) {stack.push(Integer.parseInt(s));} else {int num2 = stack.pop();int num1 = stack.pop();switch (s) {case "+":stack.push(num1 + num2);break;case "-":stack.push(num1 - num2);break;case "*":stack.push(num1 * num2);break;case "/":stack.push(num1 / num2);break;}}}return stack.pop();}private boolean isOperation(String s) {if (s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/")) {return true;//是返回true}//不是返回falsereturn false;}
}
http://www.yayakq.cn/news/476855/

相关文章:

  • 兰州网站建设推荐q479185700上快外贸展示型模板网站模板下载
  • 如何查询网站服务器地址建筑网建设通网站作用是什么
  • 长春网站建设托管推广引流文案
  • 淮北建网站网站建设吉金手指专业13
  • 网站改版准备apache搭建网站
  • wordpress改站点标题上海网站建设公公司
  • 济宁苍南网站建设wordpress美化主题
  • 购物类网站都有哪些模块厦门图书馆网站建设
  • 上海制作网站的网站wdcp 网站建设
  • 网站建设开发网站案例项目费用网站建设的会计科目
  • 学校网站建设全包wordpress nginx 301
  • 营销式网站制作房地产市场理论
  • 销售网站开发背景意义广告设计作品图片
  • 平谷做网站购物网站asp源码
  • 做网站一定要后台嘛wordpress扫码枪
  • 使用word做网站深圳科陆电子有限公司官网
  • 济南网站建设设计制作公司import wordpress
  • 省财政厅门户网站三基建设软件外包平台
  • 东台做网站的公司wordpress标签扩展
  • 网站建设总体设计网站建设策划书ppt
  • 网站运维工作内容用dw做网站怎么上传到网站上
  • 用织梦做模板网站网站开发兼职群
  • 中国建设银行遵义市分行网站上海市中学生典型事例网站
  • 网站方案建设书备案用的网站建设规划书怎么写
  • 大型企业网站制作青岛开发区建设局网站
  • 网站建设方案可以乱写吗网站建设与管理试卷答案
  • 梅江区建设局网站新冠疫苗接种最新消息
  • 太原怎样优化网站建设网站建设分前端和后台吗
  • 墨西哥网站后缀广告学是热门还是冷门
  • 杭州企业做网站服装设计素材网站大全