處理中固定到後綴表達式轉換中的括號
將中固定表達式轉換為後綴表達式涉及處理括號。括號可以引入多層優先考慮因素,必須解決這些問題以確保正確計算。
在中固定表達式中,括號可以作為改變運算順序的分組元素。例如,表達式「2 3 4」的計算結果為 14,而表達式「(2 3) 4」的計算結果為 20,因為括號強制加法發生在乘法之前。
為了處理轉換中的括號,我們需要調整以下邏輯:
// opening ( if (in_fix.peek().type == 4) { post_fix.push(in_fix.pop()); } //closing ) if(in_fix.peek().type == 5){ while(!(post_fix.isEmpty() || post_fix.peek().type == 4)){ postfixstr.append(post_fix.pop()); } if (post_fix.isEmpty()) ; // ERROR - unmatched ) else post_fix.pop(); // pop the ( in_fix.pop(); // pop the ) }
當遇到左括號時,將其壓入堆疊。當遇到右括號時,只要堆疊包含非左括號的元素,就會處理該堆疊。這些元素被附加到後綴字串。一旦堆疊為空或當前元素是左括號,右括號及其對應的左括號就會從堆疊和中固定堆疊中彈出,確保括號內表達式的優先權得以維持。
以上是括號如何影響中綴到後綴表達式的轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!