|
안녕하세요,, 제가 프infix에서 prefix로 전환하는 프로그램을 만들려고합니다.
아무리 생각해두 알고리즘을 만들수가 없더군요,
한가지생각한것이있기는한데. 문제가 생겨서요,
(a+b)*c라고 한다면 우선 뒤쪽부터 피연산자는 그냥 출력하고 연산자는 스택에 넣어서 우선순위를 따져서 만드느거죠
c는 그냥 출력되고 '*'스택에 들어가고 우측괄호')' 가 스택에 들어가고
b는 출력 '+' 스택에 들어가고 a는 출력되고좌측괄호'('나 비교되면서 '+'pop 되고 출력되고, 끝으로 '*'가 출력되는거죠,
그럼 cba+*이렇게 나오고 이것을 거꾸로 쓰면prefix방식인 *+abc가나오죠
이런 알고리즘을 생각했는데 문제가 조금 있고 복잡하기두 하구요.
다른 알고리즘이 없을까 지금도 생각합니다. 아시는분이 계시다면 도와주세요
저를 도와주시려 정리되지 않은 글을 읽어주신점 감사합니다..
|