java链表实现Stack以及后缀表达式的实现
来源:互联网 发布:触摸展示一体机软件 编辑:程序博客网 时间:2024/04/29 05:37
栈的实现:
实现的功能:
1、清空 2、是否空 3、返回长度 4、push 5、pop
import java.util.ArrayList;
import java.util.EmptyStackException;public class MyStack<AnyType>{
private int top;
ArrayList<AnyType> mystack=new ArrayList<>();
public void clear(){
top=0;
mystack.clear();
}
public MyStack(){
clear();
}
public boolean IsEmpty(){
return top==0;
}
public int Size(){
return top;
}
public boolean Push(AnyType c){
mystack.add(c);
top++;
return true;
}
public AnyType Pop(){
if (top==0)
throw new EmptyStackException();
top--;
AnyType temp=mystack.get(top);
mystack.remove(top);
return temp;
}
}
后缀表达式的实现:
public class MMM {
MyStack<Integer> ms=new MyStack<>();
String s="6523+8*+3+*";
public MMM() {
Mpush();
show();
}
void Mpush(){
for (int i=0;i<s.length();i++){
if (s.charAt(i)<'0'&&s.charAt(i)>9){
jude(s.charAt(i));
continue;
}
ms.Push((int)(s.charAt(i)-'0'));
}
}
void jude(char a){
int m1=ms.Pop();
int m2=ms.Pop();
int m3=0;
switch(a){
case '+':m3=m2+m1;break;
case '-':m3=m2-m1;break;
case '*':m3=m2*m1;break;
case '/':m3=m2/m1;break;
}
ms.Push(m3);
}
void show(){
while (!ms.IsEmpty())
System.out.println(ms.Pop());
}
public static void main(String[] args) {
MMM m=new MMM();
}
}
阅读全文
0 0
- java链表实现Stack以及后缀表达式的实现
- 计算后缀表达式的值:JAVA-Stack实现
- 中缀到后缀表达式的转换:java-stack实现
- 后缀表达式的java实现
- java 用stack 实现中缀表达式转后缀
- 【stack 实现前缀、后缀、中缀表达式运算】
- java实现数学表达式的运算(Stack)
- 后缀表达式的计算器Java实现
- 中缀表达式转换为后缀表达式c++的实现(数据结构stack)
- 后缀表达式的计算思路,过程以及算法的实现
- 后缀表达式(java实现)
- 【后缀表达式的计算思想、过程以及算法实现】
- java 实现中缀表达式转为后缀表达式
- 中缀表达式、后缀表达式 Java实现
- java后缀表达式实现表达式求值
- Stack 的 java 实现
- 前缀表达式转后缀表达式的链栈实现
- 中缀表达式转后缀表达式的实现
- 使用拦截器处理跨域请求
- [YTU]_1046 ( 输入10个数字,然后逆序输出)
- ReactJs组件间通信的方法
- 设计模式——创建型之使用建造者模式灵活自由创建你的对象(一)
- [python]一分钟了解关于python的类
- java链表实现Stack以及后缀表达式的实现
- 手工自制双面PCB板的方法
- 知识储备
- HDU
- Java Web 请求转发与请求重定向
- action获取原生servletAPI
- 【Summary】——>Web组·Week9
- C语言--冒泡排序
- [YTU]_1066 ( 输入n个数和输出调整后的n个数)