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

花箱 东莞网站建设企业网站建设制作

花箱 东莞网站建设,企业网站建设制作,嘉兴网站快速排名优化,深圳公众号开发公司CSDN的各位uu们你们好,今天千泽带来了栈的深入学习,我们会简单的用代码实现一下栈, 接下来让我们一起进入栈的神奇小世界吧!0.速览文章一、栈的定义1. 栈的概念2. 栈的图解二、栈的模拟实现三.栈的经典使用场景-逆波兰表达式总结一、栈的定义 1. 栈的概念 栈:一种…
CSDN的各位uu们你们好,今天千泽带来了栈的深入学习,我们会简单的用代码实现一下栈,
接下来让我们一起进入栈的神奇小世界吧!

0.速览文章

  • 一、栈的定义
    • 1. 栈的概念
    • 2. 栈的图解
  • 二、栈的模拟实现
  • 三.栈的经典使用场景-逆波兰表达式
  • 总结

一、栈的定义

1. 栈的概念

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

2. 栈的图解

在这里插入图片描述
压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。
出栈:栈的删除操作叫做出栈。出数据在栈顶。
在这里插入图片描述
可以看出,入栈和出栈会改变栈顶.

二、栈的模拟实现

Java集合中的Stack类在底层是一个顺序表 , 那么我们可以简单的用一个数组来模拟栈

import java.util.Arrays;public class MyStack {public int [] elem;public int usedSize;public MyStack() {this.elem = new int [5];}public void push(int val){if(isFull()){this.elem =  Arrays.copyOf(this.elem,2*this.elem.length);}this.elem[this.usedSize] = val;this.usedSize++;}public boolean isFull(){return this.usedSize == elem.length;}public int pop(){if(isEmpty()){throw  new RuntimeException("栈为空!");}int OldValue = this.elem[usedSize - 1];this.usedSize--;return OldValue;}public int peek(){if(isEmpty()){throw  new RuntimeException("栈为空!");}return this.elem[usedSize - 1];}public boolean isEmpty(){return this.usedSize == 0;}
}

友友们可以动手实践一下,数据结构一定要多写多画图多总结!


三.栈的经典使用场景-逆波兰表达式

现在,我们了解了栈的相关代码写法, 那么我们一起来看一下栈在题目中的应用
150. 逆波兰表达式求值
https://leetcode.cn/problems/evaluate-reverse-polish-notation/
在这里插入图片描述
解法:

在这里插入代码片import java.util.Stack;public class 逆波兰 {int i = 0 ;public int evalRPN(String[] tokens) {Stack<Integer> stack = new Stack<>();for(int i = 0; i < tokens.length; i++){String val = tokens[i];if(isOperation(val) == false){stack.push(Integer.parseInt(val));}else {int num1 = 0;int num2 = 0;switch (val){case "+":num2 = stack.pop();num1 = stack.pop();stack.push(num1 + num2);break;case "-":num2 = stack.pop();num1 = stack.pop();stack.push(num1 - num2);break;case "*":num2 = stack.pop();num1 = stack.pop();stack.push(num1 * num2);break;case "/":num2 = stack.pop();num1 = stack.pop();stack.push(num1 / num2);break;}}}return stack.pop();}public  boolean isOperation(String str){if(str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/")){return true;}return false;}
}

总结

今天栈的相关内容就到这里,祝你学习进步,感谢你的支持!

http://www.dt0577.cn/news/1603.html

相关文章:

  • 企业自己做网站百度一下百度搜索网站
  • 充电宝网站建设策划书自助建站系统哪个好
  • 南通企业网站建设公司怎样建立个人网站
  • 世界500强互联网公司排名seo培训师
  • 河北邯郸最新消息百度seo排名优化公司哪家好
  • 建立网站顺序bt磁力搜索引擎在线
  • 做网站用哪种代码比较好推广唐山seo
  • 如何查看网站ftp地址百度广告推广怎么做
  • 网站后台开发步骤seo网站关键词优化报价
  • 安全生产门户网站建设学网络与新媒体后悔死了
  • 网站维护费用包括哪些seo营销推广公司
  • 成都龙泉建设有限公司网站站内推广
  • 福州建站网络公司关键词优化的作用
  • 怎么做自己的网站赚钱网站建设营销型
  • 网站流量分析怎么做百度信息流广告投放
  • vps网站目录权限设置seo描述是什么意思
  • 从什么网站找做游戏的代码互联网营销师怎么做
  • 创建网站的工作流程八年级信息技术淘宝关键词查询工具哪个好
  • 怎样切图做网站每日英语新闻
  • 网站结构图怎么做百度不收录网站
  • 专门做素菜的网站网销是做什么的
  • 网站建站平台排行榜百度推广优化
  • 廊坊网站建设招聘如何优化搜索引擎的准确性
  • 外国公司做网站朋友圈软文范例
  • 建设厅证各省网站都可以查吗东莞网站设计排行榜
  • 网站建设营销百度总部客服电话
  • 兰州微网站建设今日头条极速版最新
  • 哪个网上购物网站好太原企业网站建设
  • 网站建设推广公司排名免费发布产品信息的网站
  • 搭建wordpress环境搭建北京seo分析