접두사 표기법에 부울식이 있습니다.이라고합시다. 내가 중침 표기법으로 변환 할 때 나는 ((A and B) or ((C or D) or E))
으로 끝난다. 나는 (A and B) or C or D or E
으로 줄이고 싶다. 중위 표기법을 줄이거 나 접두사 표기법에서 축소 된 수식을 얻는 것이 실제로 쉬운 지 여부입니다. 어떤 알고리즘을 사용해야합니까?부울 식에서 중복 된 괄호를 제거하는 알고리즘
0
A
답변
1
paranthesis는 식 X % (X1 ? X2 ? .. ? Xn) % X(n+1)
에서 제거 할 수 있습니다. 여기서 Xi는 괄호로 묶인 표현식 또는 부울 값 "?"입니다. 및 "%"는 각각 "?" 연산자의 우선 순위가 "%"연산자보다 높거나 같습니다.
가장 안쪽의 표현식을 찾으려면 괄호를 제거 할 수 있는지 확인하고, 결과를 저장하고, 부모 표현식을 처리하고 모든 괄호 검사가 완료 될 때까지 계속하십시오.
이것은 매핑 문제가됩니다. 접미사 표기법을 사용하면 괄호를 쉽게 삭제할 수 있습니다. 접두사, 접미사 및 접미사 표기법 간의 변환은 간단합니다.