Dlise
시원한 냉장고
Dlise
전체 방문자
오늘
어제
  • 시원한 냉장고 (132)
    • Java (31)
      • Java (26)
      • Spring (5)
    • Algorithm & PS (25)
      • Algorithm (14)
      • Problem Solving (11)
    • Network (12)
    • Database (2)
    • Data Structure (4)
    • OOP & CleanCode (5)
    • Web (0)
    • Git (2)
    • AI (2)
    • Project (1)
      • Discord Bot (1)
    • Error (19)
    • Tools (5)
    • 수학 (5)
      • 확률과 통계(기초) (5)
    • 컴퓨터 구조 (3)
    • 활동 (16)
      • 행사 & 여행 (6)
      • 자격증 (4)
      • 회고 (6)
      • 기타 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • spring security in action second edition
  • 네트워크
  • 중위 표기법
  • java
  • CleanCode
  • 백준
  • 통계학
  • 가장쉬운알고리즘책
  • 후위 표기법
  • 열혈강의자료구조

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dlise
Data Structure

자료구조 - 전위, 중위, 후위 표기법

Data Structure

자료구조 - 전위, 중위, 후위 표기법

2023. 8. 24. 17:48

전위, 중위, 후위 표기법을 정리해보고자 한다.

 

전위, 중위, 후위 표기법

위 3가지 표기법의 차이점은 연산자의 위치이다.

전위 표기법(Prefix)은 연산자가 피연산자 앞에,

중위 표기법(Infix)은 연산자가 피연산자 사이에,

후위 표기법(Postfix)은 연산자가 피연산자 뒤에 온다.

 

1 + 2 * (3 - 4) * 5라는 식을 예로 들었을 때

전위 표기법은 + 1 * * 2 - 3 4 5

후위 표기법은 1 2 3 4 - * 5 * +이다.

 

이제 어떻게 변환이 되는 것인지 알아보자.

 

중위 표기법을 전위 표기법 & 후위 표기법으로

중위 표기법을 전위, 후위 표기법으로 바꾸는데 가장 많이 쓰이는 방법은 괄호를 이용하는 것이다.

먼저 전위 표기법의 변경 순서는 다음과 같다.

1. 연산 순서대로 괄호를 묶는다.
2. 각 연산자를 괄호 앞으로 뺀다.
3. 괄호를 지운다.

이를 적용해 보자.

1 + 2 * (3 - 4) * 5

>  (1 + ((2 * (3 - 4)) * 5)) : 연산 순서대로 괄호를 묶는다. 
>  + (1 * ( * (2 - (3 4)) 5)) : 각 연산자를 괄호 앞으로 뺀다.

>  + 1 * * 2 - 3 4 5 : 괄호를 지운다.

 

 

후위 표기법도 위와 거의 같다.

1. 연산 순서대로 괄호를 묶는다.
2. 각 연산자를 괄호 뒤로 뺀다.
3. 괄호를 지운다.

이를 적용해 보자.

1 + 2 * (3 - 4) * 5

>  (1 + ((2 * (3 - 4)) * 5)): 연산 순서대로 괄호를 묶는다. 
>  (1 ((2 (3 4) - ) * 5) *) +: 각 연산자를 괄호 뒤로 뺀다.

>  1 2 3 4 - * 5 * +: 괄호를 지운다.

 

생각보다 많이 간단하다는 것을 알 수 있다.

 

 

전위 표기법 & 후위 표기법을 중위 표기법으로

그렇다면 이번엔 반대로 하는 방법을 알아보자.

먼저 전위 표기법을 중위 표기법으로 변환하는 방법이다.

1. 연속된 피연산자 2개와 왼쪽의 연산자 1개를 괄호로 묶는다.
2. 연산자를 피연산자 가운데로 옮긴다.
3. 필요 없는 괄호를 없앤다.

이를 적용해 보자.

+ 1 * * 2 - 3 4 5

>  (+ (1 (* (* 2 (- 3 4)) 5))): 연속된 피연산자 2개와 왼쪽의 연산자 1개를 괄호로 묶는다.

>  ((1 + ((2 * (3 - 4)) * 5))): 연산자를 피연산자 가운데로 옮긴다.

>  1 + 2 * (3 - 4) * 5: 필요 없는 괄호를 없앤다.

 

피연산자 2개와 연산자 1개의 결과는 피연산자 1개이므로 괄호를 (* 2 (- 3 4))처럼 묶을 수 있다.

 

후위 표기법을 중위 표기법으로 변환하는 방법은 위와 거의 같다.

1. 연속된 피연산자 2개와 오른쪽의 연산자 1개를 괄호로 묶는다.
2. 연산자를 피연산자 가운데로 옮긴다.
3. 필요 없는 괄호를 없앤다.

이를 적용해 보자.

1 2 3 4 - * 5 * +

>  (1 ((2 (3 4 -) *) 5 *) +): 연속된 피연산자 2개와 오른쪽의 연산자 1개를 괄호로 묶는다.

>  (1 + ((2 * (3 - 4)) *5)): 연산자를 피연산자 가운데로 옮긴다.

> 1 + 2 * (3 - 4) * 5: 필요 없는 괄호를 없앤다.

 

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

자료구조 - 그래프  (0) 2023.08.29
자료구조 - Stack, Queue, Deque  (1) 2023.08.27
자료구조 - 이진 트리(전위, 중위, 후위, 레벨 순회)  (0) 2023.08.24
  • 전위, 중위, 후위 표기법
  • 중위 표기법을 전위 표기법 & 후위 표기법으로
  • 전위 표기법 & 후위 표기법을 중위 표기법으로
'Data Structure' 카테고리의 다른 글
  • 자료구조 - 그래프
  • 자료구조 - Stack, Queue, Deque
  • 자료구조 - 이진 트리(전위, 중위, 후위, 레벨 순회)
Dlise
Dlise

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.