중위 표현식에서 후위 표현식 변환의 괄호 처리
중위 표현식을 후위 표현식으로 변환하려면 괄호 처리가 필요합니다. 괄호는 올바른 평가를 보장하기 위해 해결해야 하는 여러 계층의 우선순위 고려 사항을 도입할 수 있습니다.
삽입 표현식에서 괄호는 작업 순서를 변경하는 그룹화 요소 역할을 할 수 있습니다. 예를 들어, "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!