欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式一圖秒殺 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁(yè) » 新聞資訊 » 技術(shù)分享 >

中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式一圖秒殺

發(fā)表時(shí)間:2020-10-19

發(fā)布人:葵宇科技

瀏覽次數(shù):44

大年夜功課請(qǐng)求寫個(gè)中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式,結(jié)不雅發(fā)明視頻瑯綾擎給的解法是個(gè)錯(cuò)的,網(wǎng)上找了一大年夜堆,各類說法都有,公說公有理婆說婆有理,花里胡哨的,看著也復(fù)雜的一匹,說的話旁敲側(cè)擊的,看幾下就開端看不懂了,研究到凌晨終于畫了一張:秒殺大年夜圖,圖是基于調(diào)劑場(chǎng)算法(Shunting-Yard algorithm)的流程圖,可以說是清楚清楚明了,就照著圖無腦擼代碼就完事了

調(diào)劑場(chǎng)算法——一圖秒殺

代碼如下(僅參考,建議照樣看圖本身敲的舒暢):

	public Queue infixToPostfix(Queue infix) {
		Stack stack = new Stack();
		Queue postfix = new Queue();
		Boolean backtoRoot = false;
		while (!infix.isEmpty()){
			backtoRoot = false;

			Data data = infix.poll();

			if (data.type == Type.OPERATOR || data.type == Type.PAREN){
				if ("+-*/".contains(data.getOperator() )){
					while (!stack.isEmpty()) { //Stack is not empty
						Token top = stack.peek();
						if (("+-(".contains(top.getOperator()) & "/*".contains(data.getOperator())) | ((top.getOperator().equals("(")) & "-+".contains(data.getOperator() ))){ //棧頂元素優(yōu)先級(jí)低于本身
							stack.push(data);
							backtoRoot = true;
							break;
						}else {
							postfix.offer(stack.pop());
							continue;
						}

					}
					if (backtoRoot){
						continue;
					}
					// Stack is empty
					if (stack.isEmpty()){
						stack.push(data);
						continue;
					}
					continue;

				}
				if ((data.getOperator().equals("(") )){
					stack.push(data);
					continue;
				}
				if (")".contains(data.getOperator() )){
					while (!stack.isEmpty() ){

						if (stack.peek().getOperator().equals("(")) {
							stack.pop();
							break;
						}
						postfix.offer(stack.pop());

					}
					continue;
				}
			}

			if (data.type == Type.OPERAND){
				postfix.offer(data);
				continue;
			}

		}


		while (!stack.isEmpty()){
			postfix.offer(stack.pop());
		}
		return postfix;
	}

相關(guān)案例查看更多