棧實現計算機複雜計算

2021-10-03 03:16:25 字數 1542 閱讀 9821

package com.yg.stack;/*

@author geqilin

@date 2020/2/22 14:14

*/import jdk.nashorn.internal.ir.returnnode;

public class calculator else

} else

} else else }}

index++;

if (index >= expersion.length())

}while (true)

num1 = numstack.pop();

num2 = numstack.pop();

oper = operstack.pop();

//如果operstack中連續兩個操作符是-或者/要變成對應的+和*

if (!operstack.isempty() && oper == operstack.getstacktop() && oper == '-')

res = numstack.docalculator(num1, num2, oper);

numstack.push(res);

}system.out.println(expersion + "=" + numstack.getstacktop());

}}class arraystack2

//判斷棧是否為空

public boolean isempty()

//判斷棧是否為滿

public boolean isfull()

//入棧

public void push(int value)

top++;

stack[top] = value;

}//出棧

public int pop()

int value = stack[top];

top--;

return value;

}//遍歷棧

public void list()

for (int i = top; i >= 0; i--)

}//判斷當前字元是否為運算元

public boolean isoper(char c)

//檢視當前棧頂元素

public int getstacktop()

return stack[top];

}//執行計算操作

public int docalculator(int num1, int num2, int oper)

value = num2 / num1;

break;

default:

system.out.println("引數有誤");

break;

}return value;

}//得到操作符的優先順序

public int getpriority(int ch) else if (ch == '*' || ch == '/') else

}}

集合棧計算機

集合棧計算機 題目是這樣的 有乙個專門為了集合運算而設計的 集合棧 計算機。該機器有乙個初始為空的棧,並且支援以下操作 push 空集 入棧 dup 把當前棧頂元素複製乙份後再入棧 union 出棧兩個集合,然後把兩者的並集入棧 intersect 出棧兩個集合,然後把二者的交集入棧 add 出棧兩...

集合棧計算機

有乙個專門為了集合運算而設計的 集合棧 計算機。該機器有乙個初始為空的棧,並且支援以下操作 push 空集 入棧 dup 把當前棧頂元素複製乙份後再入棧 union 出棧兩個集合,然後把兩者的並集入棧 intersect 出棧兩個集合,然後把二者的交集入棧 add 出棧兩個集合,然後把先出棧的集合加...

集合棧計算機

有乙個專門為了集合運算而設計的 集合棧 計算機。該機器有乙個初始化為空的棧,並且支援以下操作。每次操作後,輸出棧頂集合的大小 即元素的個數 分析 這裡的集合並不是簡單整數集合或者字元集合,而是集合的集合。為了方便起見,此處為每個不同的集合分配乙個唯一的id,則每個集合都可以表示成所包含元素的id集合...