주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 지금부터는 후위 표기법으로의 변환 알고리즘을 코드로 구현합니다. 먼저 실제 후위 표기법으로의 변환을 처리하는 함수를 다음의 형태로 정의하기로 합니다. void ConvToRPNExp(char exp[]) { .... } 위 함수의 의도는 다음과 같습니다. "중위 표기법의 수식을 담고 있는 배열의 주소 값을 인자로 전달하면서 ConvToRPNExp 함수를 호출하면, 인자로 전달된 주소 값의 배열에는 후위 표기법으로 바뀐 수식이 저장된다." (그런데 제가 잘 몰라서 그럴 수도 있지만 배열의 주소 값을 포인터로 받는 것도 아닌데 어떻게 ..
소괄호를 포함하는 중위 표기법의 수식을 후위 표기법의 수식으로 변환하는 과정을 정리하기 위해서 다음 수식 하나를 연습장과 연필을 이용해서 후위 표기법의 수식으로 바꿔봅니다. ( 1 * 2 + 3 ) / 4 제가 작성한 답안은 다음의 '더보기'를 클릭하여 확인할 수 있습니다. 혹시 이해가 가지 않거나 추가 설명이 필요하다면 언제든지 물어보길 바랍니다. 더보기 알고리즘은 앞서 설명했으므로 변환의 과정은 보이지 않고, 변환의 결과만 보이도록 하겠습니다. 저는 후위 표기법으로의 변환뿐만 아니라 전위 표기법으로의 변환도 수행하였습니다. 후위 표기법 : 1 2 * 3 + 4 / 전위 표기법 : / + * 1 2 3 4
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 이제는 다음과 같이 소괄호가 포함되어 있는 중위 표기법의 수식을 후위 표기법의 수식으로 바꾸는 방법에 대해서 생각해 보겠습니다. 4 - ( 1 + 2 * 3 ) / 5 후위 표기법의 수식에서는 먼저 연산이 이뤄져야 하는 연산자가 뒤에 연산이 이뤄지는 연산자보다 앞에 위치해야 합니다. 따라서 위의 수식에서는 '+'연산자와 '*'연산자가 '/'연산자보다 먼저 스택을 빠져나와서 배치되어야 합니다. 이를 위해서 괄호를 어떻게 처리하는지 변환의 과정을 설명하겠습니다. 중위 표기법을 후위 표기법으로 변환하는 과정입니다. 기존 수식 ( 1 + ..
잠시 후에는 중위 표기법의 수식을 후위 표기법의 수식으로 바꾸는 프로그램을 작성할 것입니다. 그런데 그에 앞서 이번에 설명하는 방법으로 몇 개의 수식을 후위 표기법으로 바꾸는 연습을 하고자 합니다. 종이와 연필을 이용해서 후위 표기법으로 바꿔보면서 변환의 과정을 정확히 파악하기 바랍니다. 3 + 2 * 4 2 * 4 + 3 2 * 1 + 3 / 2 제 답안은 아래의 '더보기'를 클릭하여 확인할 수 있습니다. 혹시 이해가 가지 않거나 추가 설명이 필요하다면 언제든지 물어보길 바랍니다. 더보기 과정이 어떻게 되는지는 설명하지 않겠습니다. 변환의 결과만 보이겠습니다. 여기에 추가로 전위 표기법으로의 변환 결과도 보이도록 하겠습니다. 3 + 2 * 4 후위 표기법 : 3 2 4 * + 전위 표기법 : + 3 *..