最新Java数据结构-栈(Stack)(六),京东java面试题答案

《MySql面试专题》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

《MySql性能优化的21个最佳实践》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

《MySQL高级知识笔记》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

关注我,点赞本文给更多有需要的人

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

Node curr = this.head.next;

Node newNode = new Node(t, curr);

this.head.next = newNode;

}

@Override

public Iterator iterator() {

return new MyIterator();

}

private class MyIterator implements Iterator{

Node node = head ;

@Override

public boolean hasNext() {

return node.next!=null;

}

@Override

public T next() {

node = node.next;

return node.item;

}

}

}

栈的使用案例(逆波兰表达式)

逆波兰表达式求值问题是我们计算机中经常遇到的一类问题,要研究明白这个问题,首先我们得搞清楚什么是逆波兰表达式?要搞清楚逆波兰表达式,我们得从中缀表达式说起。

中缀表达式:

  • 中缀表达式就是我们平常生活中使用的表达式,例如:1+3*2,2-(1+3)等等,中缀表达式的特点是:二元运算符总是置于两个操作数中间;

  • 中缀表达式是人们最喜欢的表达式方式,因为简单,易懂。但是对于计算机来说就不是这样了,因为中缀表达式的运算顺序不具有规律性。不同的运算符具有不同的优先级,如果计算机执行中缀表达式,需要解析表达式语义,做大量的优先级相关操作。

逆波兰表达式(后缀表达式):逆波兰表达式是波兰逻辑学家J・卢卡西维兹(J・ Lukasewicz)于1929年首先提出的一种表达式的表示方法,后缀表达式的特点:运算符总是放在跟它相关的操作数之后。

中缀表达式与逆波兰表达式转换表:

假设需求:

给定一个只包含加减乘除四种运算的逆波兰表达式的数组,求出该逆波兰表达式的结果。

中缀表达式:5*(21-3)+21/7

逆波兰表达式:5 21 3 - * 21 7 / +

1.创建一个栈对象expression存储操作数;

2.从左往右遍历逆波兰表达式,得到每一个字符串;

3.判断该字符串是不是运算符,如果不是,把该该操作数压入oprands栈中;

4.如果是运算符,则从expression栈中弹出两个操作数o1,o2;

5.使用该运算符计算o1和o2,得到结果result;

6.把该结果压入expression栈中;

7.遍历结束后,拿出栈中最终的结果返回;

代码实现

class MyStackTest{

public static void main(String[] args) {

int i = 5 * (21 - 3) + 21 / 7;

System.out.println(“中缀表达式计算结果:”+i);

String[] str = {“5”, “21”, “3”, “-”, “*”, “21”, “7”, “/”, “+”};

Integer calculation = calculation(str);

System.out.println(“逆波兰表达式计算结果:”+calculation);

}

public static Integer calculation(String[] arr){

MyStack expression = new MyStack<>();

for (String s : arr) {

Integer o1,o2,result;

switch (s){

case “+”:

o1 = expression.pop();

o2 = expression.pop();

result = o2 + o1;

expression.push(result);

break;

case “-”:

o1 = expression.pop();

o2 = expression.pop();

result = o2 - o1;

expression.push(result);

break;

case “*”:

o1 = expression.pop();

o2 = expression.pop();

result = o2 * o1;

expression.push(result);

break;

case “/”:

最后

这份《“java高分面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香)

image

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

V4X5R8h-1715638011758)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值