소스 : https://github.com/stemp12/study/blob/master/Datastructure/postfix.cpp


이건 내가 지금으로부터 3년전 즉 대학교 2학년때 작성한 것인데 최근에 다시봐서 적는다.

사칙연산이 중위연산으로 들어올때 후위연산으로 구하는 것인데, 계산기의 기본 원리라고 보면 된다.

입력이 들어오면 스택을 활용해서 구하면 된다. 다음과 같은 규칙을 따른다.


1. infix 입력

2. 입력된 문자열은 정수가 아니므로 정수로 분리. 2자리 이상의 수가 들어올 있으므로 부분역시 처리.

   이때 완성된 숫자는 num이라는 스택에 삽입.

3. ( 무조건 삽입, ) (나올 때까지 방출.

4. 모든 사칙연산은 자기보다 낮은 우선순위를 만날 때까지 방출 자기 삽입.

   이유는 연산에 깊숙이 쌓이면 우선순위가 낮다는 .

5. 피연산자는 그냥 출력.

6. 마지막에는 스택에 쌓여 있는 전부 출력.


위와 같은 규칙을 따라 계산하면 된다.  뭐 어디서도 쓸모는 없겠으나..(솔직히 짜는데 시간이 오래걸려서 회사 면접문제에는 안나올 것 같다. 은근 손봐야할게 많다.)

그렇다고 안할수도 없는것이다. 자료구조는 개발자에게 기본소양이라고 생각한다.

'Data structure' 카테고리의 다른 글

[C++] 단일 연결 리스트  (0) 2016.01.25

소스 : https://github.com/stemp12/study/blob/master/Datastructure/single%20list.cpp


아흠 공부겸 오랜만에 리스트를 구현하였다. 여지껏 함수로만든 야매 리스트만 구현하다가 처음으로 객체지향적으로 구현해봤다. 물론 완벽하진 않을 것이며, 이보다 더 잘짠 코드는 널리고 널렸다. 

너무오랜만에 짜서그런지 오류고치고 하는데 너무많은 시간을 허비했다. 단일연결리스트경우는 10분이면 작성할수있어야 한다. 외우지는 않되 생각하지도 않고 짜는 수준이 되야하는데 아직은 생각하며 짜야하는 것이...연습이 더 필요할듯 하다.

이중 연결 리스트는 이 소스를 조금만 수정하면 되니, 다음에는 원형연결리스트를 구현해봐야겠다.

누군가가 이 소스로 공부를 하게 된다면 너무 심각하게 받아들이지말고 그냥 이런식이구나~ 정도만 참고하면 될것 같다.






'Data structure' 카테고리의 다른 글

중위연산->후위연산 (사칙연산)  (0) 2016.08.18

+ Recent posts