티스토리 뷰
- 전위/중위/후위 표기법과 같은 하나의 수식을 표현하는 방식
■ 그림(수식 트리의 예)
※ 수식 예: 9 – 6 / 2 + 4
■ 그림(수식 트리의 연산 과정)
[수식 트리의 구현 과정]
- 중위 표기법의 수식을 입력 받음 → 수식 트리로 표현
- 연산자, 피연산자는 스택으로 관리
[수식 트리의 표현]
- 후위 표기법의 수식에서 앞쪽에 등장하는 피연산자와 연산자로 트리의 하단을 만들고, 계속해서 뒤 (피)연산자들을 그 위로
계속해서 구성해 나감
■ 그림(수식 트리의 구성 과정)
- 후위 표기법 수식 '8 2 - 2 /'를 스택을 활용하여 수식 트리로 구성
- 수식에서 조회된 문자가 '피연산자'이면 스택에 넣음
- 위와 동일
- 수식에서 조회된 문자가 '연산자'이면 스택에 저장된 피연산자를 꺼내어 자식 노드로 연결
- 먼저 꺼내진 피연산자 '2'는 오른쪽 자식노드로 연결
- 다음에 꺼내진 피연산자 '8'은 왼쪽 자식노드로 연결
- 완성된 수식 트리는 다시 스택에 넣음
- 다시 수식을 조회과정을 반복
- 수식에서 '연산자'가 조회되면 또 스택에서 피연산자(트리도 해당) 꺼내어 자식 노드로 연결
- 더 이상 수식에 문자가 없으면 종료
[정리]
- 수식에서 문자를 하나씩 조회할 때 피연산자는 무조건 스택으로 옮김
- 연산자가 조회되면 스택에서 2개의 피연산자를 꺼내어 자식 노드로 연결
- 이 때, 먼저 꺼낸 피연산자는 오른쪽 자식이고 나중에 꺼내진 피연산자는 왼쪽 자식으로 연결됨
- 자식 노드를 연결해서 만들어진 트리는 다시 스택으로 옮김
'자료구조' 카테고리의 다른 글
[ch 09-1] 우선순위 큐의 이해 (0) | 2016.04.21 |
---|---|
[ch 08-4] 수식 트리의 구현_2(구현) (0) | 2016.04.17 |
[ch 08-3] 이진 트리의 순회 (0) | 2016.04.13 |
[ch 08-2] 이진 트리의 구현 (0) | 2016.04.13 |
[ch 08-1] 트리의 개요 (0) | 2016.04.13 |
- Total
- Today
- Yesterday
- 말하기
- Delphi
- 응용
- tdataset
- 왕초보 영어회화 100일의 기적
- SWT
- 상황
- VCL
- 교육센터
- 일기
- SysUtils
- Reference
- 계산기
- 알고리즘
- 설명
- 정렬
- System
- 스택
- Pte
- ADODB
- 영어
- 작문
- java
- 독해
- RA
- 대상
- 자료구조
- 여행영어 100일의 기적
- 문법
- wfd
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |