2sjin
2sjin
2sjin

블로그 메뉴

  • My GitHub
  • 전체 게시글
    • UNIX 이론 정리
    • Linux
      • Linux 관련 노하우
      • Linux 과제
      • OracleCloud & Ubuntu
      • Tomcat Server
      • MySQL Server
      • 구름 OS
      • 라즈베리파이4
    • 데이터베이스
      • DB 관련 노하우
      • DB 과제
      • DB 프로젝트
    • Unity
    • Computer Science
      • 통신 & 네트워크
      • 자료구조 & 알고리즘
      • 운영체제
      • 정보보호
      • 기타 분야
    • 소프트웨어
      • 소프트웨어공학
      • 프로그래밍 언어

공지사항

인기 글

태그

  • 개인 Term Project
  • 팀 프로젝트

최근 글

티스토리

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
2sjin

2sjin

[알고리즘 과제] 스택의 응용: 사칙연산
Computer Science/자료구조 & 알고리즘

[알고리즘 과제] 스택의 응용: 사칙연산

2022. 10. 4. 01:03

( 117.32 + 83 ) * 49

 

1. 중위 표기식(In-order)을 후위 표기식(Post-order)으로 변환하는 과정

  • 연산자 또는 여는 괄호를 만나면 스택에 PUSH한다.
  • 피연산자를 만나면 즉시 출력한다.
  • 닫는 괄호를 만나면 여는 괄호를 POP할 때 까지 계속 POP한다. 연산자를 POP할 때는 동시에 출력한다.
  • 수식의 끝에 도달하면, 스택이 EMPTY 될 때 까지 계속 POP한다. 연산자를 POP할 때는 동시에 출력한다.
여는 괄호를 만남

→ 스택에 PUSH
피연산자 '117.32'를 만남

→ 출력
연산자 '+'를 만남

→ 스택에 PUSH
피연산자 '83'를 만남

→ 출력
닫는 괄호를 만남

→ 닫는 괄호부터 여는 괄호까지 순서대로 스택에서 POP

→ 연산자는 POP 하면서 동시에 출력


연산자 '*'를 만남

→ 스택에 PUSH
피연산자 '49'를 만남

→ 출력

수식의 끝에 도달함

→ 스택이 EMPTY 될 때까지 POP

→ 연산자는 POP 하면서 동시에 출력


 

2. 후위 표기식(Post-order) 계산 과정

  • 피연산자를 만나면 만나면 스택에 PUSH한다.
  • 연산자를 만나면 POP을 두 번 수행한다. POP한 두 피연산자를 연산한 결과값을 스택에 PUSH한다. 
  • 수식의 끝에 도달하면, 최종 연산 결과값이 스택에 저장된다. 
피연산자 '117.32'를 만남

→ 스택에 PUSH
피연산자 '83'를 만남

→ 스택에 PUSH
연산자 '+'를 만남

→ 스택 POP을 두 번 수행함

→ POP한 두 피연산자로 연산 수행(83 + 117.32)

→ 연산 결과(200.32)를 스택에 PUSH
피연산자 '49'를 만남

→ 스택에 PUSH

연산자 '*'를 만남

→ 스택 POP을 두 번 수행함

→ POP한 두 피연산자로 연산 수행(49 * 200.32)

→ 연산 결과(9815.68)를 스택에 PUSH

수식의 끝에 도달함

→ 최종 연산 결과가 스택에 저장되어 있음
 
 
[참고] 연산식의 중위, 전위, 후위 순회 예시(자료구조 과제)
 
 
 
 
 

'Computer Science > 자료구조 & 알고리즘' 카테고리의 다른 글

[알고리즘 과제] 이진 탐색 트리의 구성, 노드의 삽입과 삭제  (0) 2022.10.04
[알고리즘 과제] 이진 트리 순회 및 표기식(전위, 중위, 후위)  (1) 2022.10.04
[알고리즘 과제] 해싱(Hashing)  (1) 2022.10.03
[알고리즘 과제] 퀵 정렬(Quick Sort) 알고리즘  (0) 2022.10.03
[알고리즘 과제] 연결 리스트 삽입 및 삭제  (0) 2022.10.03
'Computer Science/자료구조 & 알고리즘' 카테고리의 다른 글
  • [알고리즘 과제] 이진 탐색 트리의 구성, 노드의 삽입과 삭제
  • [알고리즘 과제] 이진 트리 순회 및 표기식(전위, 중위, 후위)
  • [알고리즘 과제] 해싱(Hashing)
  • [알고리즘 과제] 퀵 정렬(Quick Sort) 알고리즘
2sjin
2sjin

티스토리툴바