스택 이용 중위 표기의 후위 표기 전환 프로그램

1. 스택 이용 중위 표기의 후위 표기 전환.hwp
2. 스택 이용 중위 표기의 후위 표기 전환.pdf
스택 이용 중위 표기의 후위 표기 전환 프로그램
스택 이용 중위 표기의 후위 표기 전환 프로그램
▶문제: 키보드로 중위 표기(infix)의 산술식을 입력 받아서 후위 표기(postfix) 산술식으로 전환하여 출력한다.(단,스택을 이용한 처리이다..)

◈입력: A+B*C-D
◈ 출력1: ABC*+D-

예1) 중위 표기식 3+8*9-7의 식이 입력되면
389*+7- 의 후위 표기식으로 바꾸어 화면에 출력한다.

예2) 괄호를 포함하는 중위 표기식도 후위 표기식으로 바꿀 수 있어야 한다.
중위 표기식 3+8*(9-7)/2이 입력되면, 마찬가지로
3897-*2/+의 후위 표기식으로 바꾸어 화면에 출력한다.

▶풀이
==] 중위 표기식을 후위 표기로 전환하는 프로그램을 작성하기 위해 중위 표기에서 후위 표기로 바꾸는 과정을 배열 스택을 이용해서 작성했다. 물론 연결 스택보다 메모리 활용면에서 많은 낭비가 있지만, 연결 스택에 비해서 배열 스택이 전체적인 알고리즘면에서 복잡하지않고, 또한 문제의 데이터량이 많지 않았기 때문에 배열 스택을 사용하였다. 또한 연산 과정에서 발생할 수 있는 overflow와 스택의 공백상태에 대비하여 overflow와 스택의 공백 유무 조사 알고리즘을 포함 하였다. 산술식을 입력받고 숫자일 경우에는 그대로 출력하고 산술연산자 또는 괄호일 경우 스택에 저장하고 산술연산자의 우선순위를 비교하여 출력한다.

▶ 참고 문헌
C언어로 구현한 자료구조 / 임형근 저

실행결과)
* 실행

*3+8*(9-7)/2를 입력했을 경우 결과값
source)

#include[stdio.h]
#include[iostream.h]
#include[conio.h]
#include[string.h]
#include[stdlib.h]

/* postfix() 중위 표기를 후위 표기로 바꾸는 함수
....