>Java >java지도 시간 >중위 대 후위 표현식 변환에서 괄호를 처리하는 방법은 무엇입니까?

중위 대 후위 표현식 변환에서 괄호를 처리하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-10 15:12:03204검색

How to Handle Parentheses in Infix to Postfix Expression Conversion?

중위에서 후위 표현식으로의 괄호 처리

중위 표현식을 후위 표현식으로 변환하는 것은 컴파일러 설계에서 일반적인 작업입니다. 정확한 변환을 위해서는 괄호를 올바르게 처리하는 것이 중요합니다.

귀하의 질문은 Java 메소드인 toPostFix에서 괄호를 처리하는 것과 관련이 있습니다. 이 문제를 해결하려면 다음 단계를 따르세요.

여는 괄호가 있는 경우(:

// 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 )
} 

이 프로세스를 통해 :

  • 왼쪽 괄호( post_fix 스택에 푸시됩니다.
  • 오른쪽 괄호 )가 발견되면 연산자와 괄호가 아닌 토큰이 post_fix에서 팝되고 postfixstr에 추가됩니다. 왼쪽 괄호(는 post_fix에서 발생합니다.
  • 왼쪽 괄호는 괄호 쌍과 일치하도록 in_fix에서 오른쪽 괄호는 팝됩니다.

이러한 단계를 구현하면 toPostFix 메소드는 중위 표현식에서 여러 계층의 괄호를 올바르게 처리합니다.

위 내용은 중위 대 후위 표현식 변환에서 괄호를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.