변수
객체를 참조하는 이름이다. a=[1]에서 a는 리스트 그 자체의 복사본이 아니며 다른 객체로 다시 바인딩할 수 있다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.3; 1.1. preliminary.mp4, 00:13:58~00:14:28
단어 공부
시험 범위에 맞는 전문용어와 비교 포인트를 탭으로 정리했습니다.
Study Mode
다른 검색어로 다시 찾아보세요.
Group 1
객체를 참조하는 이름이다. a=[1]에서 a는 리스트 그 자체의 복사본이 아니며 다른 객체로 다시 바인딩할 수 있다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.3; 1.1. preliminary.mp4, 00:13:58~00:14:28
이름이나 컨테이너가 객체를 가리키는 연결이다. b=a는 보통 객체를 복제하지 않고 동일 객체에 대한 참조를 공유한다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.3; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.4; 1.1. preliminary.mp4, 00:18:43~00:19:47; 2.2. 배열(1).mp4, 00:20:50~00:23:25
속성과 동작을 정의하는 객체의 설계 단위이다. Car 클래스에서 서로 다른 색과 속도의 인스턴스를 만들 수 있다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.5; 1.1. preliminary.mp4, 00:21:53~00:23:19
특정 클래스에서 생성된 개별 객체이다. 같은 클래스의 a와 b도 서로 다른 인스턴스 속성을 가질 수 있다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.5; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.6; 1.1. preliminary.mp4, 00:24:51~00:25:53
__init__으로 생성된 인스턴스의 초기 속성을 설정하는 과정이다. self.speed=0은 해당 인스턴스의 속도를 초기화한다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.6; 1.1. preliminary.mp4, 00:24:21~00:24:51
self.color처럼 개별 객체에 속한 상태이다. 한 객체의 속도 변경이 다른 객체의 속도를 자동 변경하지는 않는다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.6; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.7; 1.1. preliminary.mp4, 00:26:23~00:28:40
객체에 연결된 연산이다. car.speedUp()은 car의 상태를 변경하는 동작의 예이다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.7; 1.1. preliminary.mp4, 00:37:45~00:38:21
부모 클래스의 속성과 동작을 자식 클래스에서 재사용하고 확장하는 관계이다. 자식 생성자에서 super()로 부모 초기화를 호출할 수 있다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.10; 1.1. preliminary.mp4, 00:34:32~00:35:33
자식 클래스가 부모와 같은 이름의 메서드를 새 동작으로 정의하는 것이다. 터보 차량의 speedUp이 부모 가속 규칙을 바꾸는 예이다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.11; 1.1. preliminary.mp4, 00:39:49~00:40:52
__eq__ 등으로 두 객체가 의미상 같은지를 판단하는 연산이다. 같은 색인지 비교하는 규칙은 객체 동일성 검사와 구별된다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.8
__str__을 통해 제공하는 읽을 수 있는 객체 설명이다. 반환 결과는 문자열이어야 하며 출력 형식을 정하는 데 사용된다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.8
구현을 실제 환경에서 실행하여 시간을 측정하는 방법이다. 하드웨어·입력 표본의 영향을 받아 모든 입력에 대한 보장은 주지 않는다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.14; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.16; 1.2. 복잡도분석.mp4, 00:05:36~00:10:03
기본 연산 수를 입력 크기의 함수로 모델링하는 분석이다. 구현 환경 차이를 줄이지만 연산 비용에 대한 가정을 명시해야 한다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.16; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.17; 1.2. 복잡도분석.mp4, 00:10:03~00:10:54
입력 크기에 따라 연산량이 증가하는 형태이다. 한 번 순회는 선형, 모든 원소 쌍 검사는 이차 시간이 대표적이다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.14; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.17; 1.2. 복잡도분석.mp4, 00:03:33~00:05:06
수행에 필요한 메모리 양의 증가를 분석한 것이다. 보조 공간을 말할 때는 입력 저장공간 포함 여부를 구별한다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.14; 1.2. 복잡도분석.mp4, 00:05:06~00:05:36
충분히 큰 입력에서 양의 상수배로 제한되는 점근적 상한이다. n²는 O(n²)인 동시에 O(n³)이므로 항상 타이트한 차수를 뜻하지 않는다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.19; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.20; 1.2. 복잡도분석.mp4, 00:24:04~00:25:38
충분히 큰 입력에서 양의 상수배 이상이 되는 점근적 하한이다. 입력의 최선 사례라는 뜻과는 다르다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.26; 1.2. 복잡도분석.mp4, 00:43:17~00:43:46
같은 기준 함수에 대한 점근적 상한과 하한이 함께 성립하는 관계이다. 3n+2는 Θ(n)이다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.26; 1.2. 복잡도분석.mp4, 00:43:46~00:44:04
동일 크기의 입력들 중 비용이 가장 작은 경우이다. 선형 탐색에서 첫 원소가 목표인 경우가 예이다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.27; 2.1. 순환(Recursion).mp4, 00:04:45~00:05:17
동일 크기의 입력들 중 비용이 가장 큰 경우이다. 선형 탐색에서 목표가 없는 입력이 예이다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.27; 2.1. 순환(Recursion).mp4, 00:05:17~00:07:30
함수가 자기 자신을 호출해 더 작은 문제의 결과로 답을 구성하는 방법이다. 종료 조건과 문제 크기 감소가 함께 필요하다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.28; 2.1. 순환(Recursion).mp4, 00:11:03~00:11:34
추가 재귀 호출 없이 답을 반환하는 조건이다. 0!까지 다루려면 0에 대한 종료도 설계해야 한다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.28; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.29; 2.1. 순환(Recursion).mp4, 00:12:58~00:13:57
for·while 등의 반복문으로 상태를 갱신해 문제를 해결하는 방식이다. 재귀와 같은 시간 차수여도 호출 스택 비용은 다를 수 있다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.30; 2.1. 순환(Recursion).mp4, 00:20:36~00:22:37
밑을 제곱하고 지수를 절반으로 줄여 거듭제곱을 계산하는 방식이다. 한 번씩만 재귀하면 산술 연산 수와 깊이가 O(log n)이다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.31; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.32; 2.1. 순환(Recursion).mp4, 00:31:56~00:39:46
Group 2
동일 크기 셀을 연속된 메모리 영역에 배치한 구조이다. 시작 주소와 인덱스로 셀 위치를 계산한다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.6; 2.2. 배열(1).mp4, 00:11:05~00:13:04
객체 본체 대신 객체 참조를 저장하는 배열이다. 크기가 다른 문자열 객체도 같은 크기의 참조 셀로 가리킬 수 있다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.7; 2.2. 배열(1).mp4, 00:18:10~00:20:16
같은 유형의 원시값을 셀에 직접 저장하는 배열이다. array 모듈은 유형 코드로 원소 표현을 정한다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.10; 2.2. 배열(1).mp4, 00:36:47~00:39:57
바깥 컨테이너를 새로 만들되 원소 객체의 참조는 공유하는 복사이다. 중첩 리스트의 내부 변경은 원본에서도 보일 수 있다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.8; 2.2. 배열(1).mp4, 00:25:05~00:27:03
실제 원소 수와 별도로 여유 용량을 관리하며 필요하면 더 큰 배열로 교체하는 구조이다. 리스트의 가변 길이를 지원한다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.14; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.16; 3.1. 배열(2)-dynamic_array.mp4, 00:02:38~00:05:38
기반 배열에 확보한 셀 수이다. 저장된 실제 원소 수와 같을 필요가 없으며 빈 셀도 포함한다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.14; 3.1. 배열(2)-dynamic_array.mp4, 00:11:54~00:12:51
현재 논리적으로 저장한 원소 수이다. 용량 8 배열에 원소 5개라면 크기는 5이다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.16; 3.1. 배열(2)-dynamic_array.mp4, 00:11:54~00:12:23
드물게 발생하는 큰 비용을 포함해 연산열 전체 비용을 분석하는 방법이다. 입력 분포를 가정한 평균 분석과 다르다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.19; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.20; 3.1. 배열(2)-dynamic_array.mp4, 00:20:23~00:27:24
용량을 일정 배수로 늘리는 정책이다. 두 배 증가의 누적 복사량은 기하급수 합으로 선형 범위에 머문다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.20; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.21; 3.1. 배열(2)-dynamic_array.mp4, 00:27:53~00:30:16
용량을 고정된 칸 수씩 늘리는 정책이다. 긴 append 연산열에서는 누적 재할당 비용이 이차 차수가 된다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.22; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.23; 3.1. 배열(2)-dynamic_array.mp4, 00:33:25~00:34:23
사용률이 충분히 낮아졌을 때 용량을 줄이는 작업이다. 확장 경계와 축소 경계를 벌려 반복 진동을 피한다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.24; 3.1. 배열(2)-dynamic_array.mp4, 00:43:47~00:44:58
원하는 인덱스 뒤의 기존 원소들을 한 칸 뒤로 옮기고 새 값을 놓는 연산이다. 앞쪽 삽입일수록 이동이 많다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.28; 3.2. 배열(3).mp4, 00:06:32~00:09:42
제거 위치 뒤의 원소들을 당겨 빈 셀을 메우는 연산이다. pop(0)의 이동 비용은 길이에 비례한다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.29; 3.2. 배열(3).mp4, 00:12:44~00:13:41
정렬된 접두 구간에 다음 원소를 적절히 삽입하는 정렬이다. 엄격한 >로 이동하면 안정적이며 최악 시간은 Θ(n²)이다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.38; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.39; 3.2. 배열(3).mp4, 00:35:58~00:41:21
알파벳 인덱스에 일정 이동량을 더하고 26으로 나눈 나머지로 치환하는 방식이다. 예를 들어 3칸 이동은 Z를 C로 바꾼다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.40; 3.2. 배열(3).mp4, 00:41:56~00:44:01
행 리스트들을 원소로 갖는 리스트이다. 각 행을 별도로 생성해야 행 하나의 변경이 다른 행에 전파되지 않는다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.44; 3.2. 배열(3).mp4, 00:45:36~00:50:40
Group 3
삽입과 삭제가 한쪽 top에서 일어나는 후입선출 ADT이다. 마지막에 넣은 작업을 먼저 되돌리는 실행 취소가 응용이다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.4; 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.5; 4.1. Stack.mp4, 00:07:47~00:08:44
Last In, First Out의 약자로 마지막 삽입 원소가 먼저 제거되는 규칙이다. 큐의 FIFO와 구별한다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.4; 4.1. Stack.mp4, 00:02:23~00:03:20
스택 top에 새 원소를 넣는 연산이다. 리스트 기반 구현에서는 내부 리스트의 append를 사용한다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.5; 4.1. Stack.mp4, 00:02:51~00:03:20
스택 top 원소를 제거해 반환하는 연산이다. 빈 스택에서는 오류가 발생하며 조회만 하는 top과 다르다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.5; 4.1. Stack.mp4, 00:09:44~00:10:43
스택의 가장 최근 원소를 제거하지 않고 반환하는 조회이다. 호출 전후 크기는 동일하다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.5; 4.1. Stack.mp4, 00:18:25~00:18:55
기존 객체를 내부 필드로 감싸 원하는 다른 인터페이스를 제공하는 패턴이다. 리스트를 감싼 ArrayStack이 예이다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.8; 4.1. Stack.mp4, 00:16:00~00:18:04
뒤에서 삽입하고 앞에서 삭제하는 선입선출 ADT이다. 대기열의 도착 순서를 보존한다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.18; 4.2. Queue-Deque.mp4, 00:01:10~00:04:55
First In, First Out의 약자로 가장 먼저 들어온 원소가 먼저 제거되는 규칙이다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.18; 4.2. Queue-Deque.mp4, 00:01:10~00:02:16
큐의 뒤에 원소를 추가하는 연산이다. 순환 배열에서는 (front+size)%N 위치를 사용한다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.18; 4.2. Queue-Deque.mp4, 00:02:48~00:03:55
큐의 첫 원소를 제거해 반환하는 연산이다. 순환 배열은 셀을 비우고 front를 전진시키며 size를 감소시킨다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.18; 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.24; 4.2. Queue-Deque.mp4, 00:29:56~00:32:02
나머지 연산으로 배열 끝에서 처음으로 돌아오며 빈 셀을 재사용하는 큐이다. 물리 인덱스 순서와 논리적 FIFO 순서를 구별한다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.21; 4.2. Queue-Deque.mp4, 00:15:57~00:21:27
양 끝 모두에서 삽입과 삭제를 지원하는 ADT이다. 스택이나 큐의 연산을 제한된 형태로 구현할 수도 있다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.29; 4.2. Queue-Deque.mp4, 00:39:30~00:41:30
Group 4
각 노드가 원소와 다음 노드 참조를 저장하는 선형 구조이다. 앞 삭제는 빠르지만 선행자를 모르는 뒤 삭제는 순회가 필요하다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.5; 5.1. Linked-List(1).mp4, 00:21:37~00:23:05
연결 리스트의 첫 노드를 가리키는 참조이다. 비어 있으면 None이며 연결 스택에서는 top의 위치가 된다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.5; 5.1. Linked-List(1).mp4, 00:28:58~00:29:27
마지막 노드를 가리키는 참조이다. 단일 연결 큐에서 뒤 삽입을 상수 시간으로 지원하지만 이전 노드를 직접 알려 주지는 않는다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.5; 4. Chapter_7_-_Linked_List.pdf, PDF p.8; 5.1. Linked-List(1).mp4, 00:30:25~00:31:32
노드마다 prev와 next를 두어 양쪽 이웃으로 이동하는 구조이다. 유효 노드를 이미 알면 삭제를 상수 시간에 수행할 수 있다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.23; 5.2. Linked-List(2).mp4, 00:40:57~00:43:06
사용자 원소가 없는 경계용 노드이다. 빈 이중 연결 리스트에서는 header.next=trailer, trailer.prev=header로 연결한다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.23; 4. Chapter_7_-_Linked_List.pdf, PDF p.24; 4. Chapter_7_-_Linked_List.pdf, PDF p.28; 5.2. Linked-List(2).mp4, 00:44:02~00:47:43
마지막 노드의 next가 첫 노드로 돌아가는 연결 구조이다. tail 하나로 head=tail.next를 얻을 수 있다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.18; 4. Chapter_7_-_Linked_List.pdf, PDF p.20; 5.2. Linked-List(2).mp4, 00:25:03~00:26:16
단일 연결 리스트의 head를 top으로 쓰는 스택 구현이다. push·pop·top은 재할당 없이 최악 O(1)이다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.11; 4. Chapter_7_-_Linked_List.pdf, PDF p.14; 5.2. Linked-List(2).mp4, 00:09:01~00:13:07
head에서 제거하고 tail에 추가하는 단일 연결 큐이다. 마지막 원소 제거 시 head와 tail 모두 None으로 맞춘다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.15; 4. Chapter_7_-_Linked_List.pdf, PDF p.16; 5.2. Linked-List(2).mp4, 00:18:58~00:23:29
특정 컨테이너의 노드를 외부에 안전하게 표현하는 위치 객체이다. p.element()로 값에 접근하며 다른 곳의 삽입에도 지시 노드는 유지된다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.34; 4. Chapter_7_-_Linked_List.pdf, PDF p.37; 5.3. Linked-List(3).mp4, 00:12:05~00:13:02
Position을 기준으로 앞뒤 이동·삽입·삭제·교체를 제공하는 ADT이다. 유효 위치가 주어지면 이중 연결 기반 갱신은 O(1)이다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.34; 4. Chapter_7_-_Linked_List.pdf, PDF p.35; 5.3. Linked-List(3).mp4, 00:01:35~00:02:41
Position의 유형·소속 컨테이너·삭제 여부를 확인하고 내부 노드를 얻는 과정이다. 잘못된 리스트의 위치를 사용하지 못하게 한다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.38; 5.3. Linked-List(3).mp4, 00:20:59~00:21:31
노드 삭제로 기존 Position을 더 이상 사용할 수 없게 만드는 처리이다. 삭제 노드의 링크를 None으로 비우는 관례를 사용할 수 있다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.29; 4. Chapter_7_-_Linked_List.pdf, PDF p.38; 5.3. Linked-List(3).mp4, 00:12:05~00:12:33
정렬된 접두 구간 뒤 pivot을 이전 위치들 사이에서 적절히 재삽입하는 정렬이다. 링크 갱신은 빨라도 위치 탐색 때문에 최악 Θ(n²)이다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.42; 5.3. Linked-List(3).mp4, 00:32:03~00:40:30
각 항목의 누적 접근 횟수를 세고 그 내림차순으로 유지하는 구조이다. 접근 시 횟수 증가에 따라 앞으로 재배치한다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.44; 4. Chapter_7_-_Linked_List.pdf, PDF p.45; 5.3. Linked-List(3).mp4, 00:42:01~00:44:59
접근한 항목을 무조건 리스트 맨 앞으로 옮기는 휴리스틱이다. 최근성을 반영하므로 앞에서 k개가 누적 최빈 k개라는 보장은 없다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.48; 5.3. Linked-List(3).mp4, 00:46:27~00:47:27
참조 지역성 중 최근 사용한 항목을 가까운 미래에 다시 사용할 가능성이 높은 경향이다. MTF가 최근 접근 항목을 앞에 두는 근거가 되며 인접 주소를 사용하는 공간 지역성과 구별한다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.48; 5.3. Linked-List(3).mp4, 00:46:59~00:48:56
Group 5
루트를 기준으로 부모·자식의 계층 관계를 표현하는 비선형 자료구조이다. 루트가 아닌 노드는 유일한 부모를 가진다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.4; 6.1. Tree(1).mp4, 00:10:29~00:11:30
부모가 없는 특별한 노드이다. 비어 있지 않은 트리에서 하나 존재하며 깊이는 0이다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.5; 6.1. Tree(1).mp4, 00:11:30~00:12:32; 6.2. Tree(2).mp4, 00:02:01~00:02:32
특정 노드의 바로 위에 연결된 노드이다. 루트 외의 각 노드는 유일한 부모를 가진다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.4; 5. Chapter_8_-_Trees.pdf, PDF p.5; 6.1. Tree(1).mp4, 00:12:00~00:13:02
같은 직접 부모를 공유하는 노드들이다. 단지 깊이가 같다는 것만으로는 형제가 아니다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.5; 6.1. Tree(1).mp4, 00:19:42~00:20:45
자식이 없는 외부 노드이다. 간선 수 기준 높이는 0이며 수식 트리에서는 피연산자를 저장한다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.5; 5. Chapter_8_-_Trees.pdf, PDF p.10; 6.1. Tree(1).mp4, 00:20:45~00:21:51
하나 이상의 자식을 가진 노드이다. 정이진 트리에서는 정확히 두 자식을 가지며 수식 트리에서는 연산자를 저장한다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.5; 6.1. Tree(1).mp4, 00:21:51~00:22:55
루트에서 해당 노드까지의 간선 수이다. 부모의 깊이에1을 더하면 자식의 깊이가 된다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.9; 6.2. Tree(2).mp4, 00:01:32~00:03:01
해당 노드에서 가장 먼 하위 리프까지의 간선 수이다. 리프는0, 내부 노드는 자식 높이 최댓값+1이다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.10; 6.2. Tree(2).mp4, 00:15:58~00:17:41
노드의 자식 수에 고정된2개 상한을 두지 않는 트리이다. 자식 참조들을 별도 컨테이너에 저장할 수 있다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.4; 5. Chapter_8_-_Trees.pdf, PDF p.31; 6.3. Tree(3).mp4, 00:54:33~00:56:35; 7.1. Tree(4).mp4, 00:03:01~00:03:33
각 노드에 최대 두 자식을 허용하고 왼쪽·오른쪽을 구별하는 순서 있는 트리이다. 한쪽 자식만 존재할 수도 있다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.14; 5. Chapter_8_-_Trees.pdf, PDF p.15; 6.3. Tree(3).mp4, 00:00:32~00:03:11; 7.1. Tree(4).mp4, 00:25:56~00:26:52
교안의 proper/full binary tree로 모든 내부 노드가 정확히 두 자식을 가진다. 리프 수는 내부 노드 수+1이며 전체 노드 수는 홀수이다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.14; 5. Chapter_8_-_Trees.pdf, PDF p.19; 6.3. Tree(3).mp4, 00:25:48~00:26:55
왼쪽 서브트리 값은 현재 값보다 작고 오른쪽은 큰 순서 규칙을 만족하는 이진 트리이다. 균형 보장이 없으면 탐색 최악은 선형이다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.40; 7.1. Tree(4).mp4, 00:36:34~00:39:07
노드를 먼저 방문한 뒤 자식 서브트리를 순서대로 방문하는 순회이다. 목차 출력처럼 부모를 먼저 처리하는 용도에 맞는다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.34; 7.1. Tree(4).mp4, 00:04:03~00:04:34; 7.2. Tree(5).mp4, 00:02:00~00:03:26
자식 서브트리를 모두 방문한 뒤 노드를 방문하는 순회이다. 디렉터리 총 공간이나 수식 값의 하위 결과 합산에 적합하다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.35; 5. Chapter_8_-_Trees.pdf, PDF p.49; 7.1. Tree(4).mp4, 00:11:28~00:12:33; 7.2. Tree(5).mp4, 00:17:57~00:20:26
이진 트리에서 왼쪽 서브트리·현재 노드·오른쪽 서브트리 순으로 방문한다. 일반 트리에는 동일한 표준 정의가 없다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.39; 7.1. Tree(4).mp4, 00:25:56~00:27:50
깊이가 낮은 레벨의 노드를 먼저 방문하는 순회이다. FIFO 큐로 발견한 노드들을 대기시키며 최악 보조 공간은 선형일 수 있다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.37; 7.1. Tree(4).mp4, 00:18:40~00:20:16
각 노드가 원소·부모·왼쪽·오른쪽 참조를 가진 구현이다. 유효 위치에서 국소적 링크 변경은 상수 시간이 가능하다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.22; 5. Chapter_8_-_Trees.pdf, PDF p.28; 6.3. Tree(3).mp4, 00:32:23~00:34:46
루트0, 왼쪽2i+1, 오른쪽2i+2의 레벨 번호로 셀을 배정하는 구현이다. 편향 트리는 빈 셀이 많아 공간이 커질 수 있다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.29; 5. Chapter_8_-_Trees.pdf, PDF p.30; 6.3. Tree(3).mp4, 00:46:41~00:48:50
이항 연산자를 내부 노드, 수치 피연산자를 리프에 저장하는 이진 트리이다. 자식 값을 먼저 평가하는 후위 계산을 적용한다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.52; 5. Chapter_8_-_Trees.pdf, PDF p.55; 6.3. Tree(3).mp4, 00:07:03~00:07:33; 7.2. Tree(5).mp4, 00:22:56~00:23:58
수식 문자열을 연산자·괄호·수치 등 의미 있는 단위로 나누는 과정이다. 여러 자리 수12를 '1','2'로 쪼개지 않고 하나로 처리한다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.56
노드 뒤 괄호 안에 자식 서브트리를 쉼표로 나열하는 표현이다. A(B,C)는 A의 두 자식 B와 C를 명확히 표시한다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.47; 5. Chapter_8_-_Trees.pdf, PDF p.48; 7.2. Tree(5).mp4, 00:11:52~00:14:33
선택한 노드를 루트로 하여 그 아래의 모든 후손을 포함하는 트리이다. 이진 트리는 좌우 서브트리를 재귀적으로 갖는다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.5; 5. Chapter_8_-_Trees.pdf, PDF p.15; 6.1. Tree(1).mp4, 00:25:41~00:27:47
다른 검색어로 다시 찾아보세요.
Compare 1
변수는 이름이고 객체 참조는 그 이름과 객체를 연결하는 수단이다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.3; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.4; 1.1. preliminary.mp4, 00:17:12~00:19:47
대입 대상으로 쓰는 이름이다.
여러 이름이 같은 객체를 가리킬 수 있다.
객체를 사용하는 프로그램의 상태를 설명한다.
이름 변경과 객체 변경을 구별해야 한다.
이름표와 가리키는 화살표를 나눠 생각한다.
클래스는 공통 정의, 인스턴스는 그 정의에서 생성된 개별 객체이다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.5; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.6; 1.1. preliminary.mp4, 00:23:19~00:25:53
속성과 메서드를 정의한다.
자신의 상태를 가진다.
객체 지향 모델의 구성 요소이다.
하나의 클래스에서 여러 인스턴스를 만든다.
설계도 하나, 실제 물건 여러 개.
연산량과 메모리량의 증가를 각각 분석한다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.14; 1.2. 복잡도분석.mp4, 00:01:08~00:02:09
기본 연산 횟수의 증가를 본다.
저장공간의 증가를 본다.
입력 크기에 대한 자원 사용 분석이다.
빠른 알고리즘이 메모리도 적게 쓴다고 단정할 수 없다.
시간은 연산, 공간은 저장.
실측은 특정 환경의 시간을, 이론은 연산 모델의 증가를 알려 준다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.16; 1.2. 복잡도분석.mp4, 00:07:36~00:10:54
구현·측정 환경·표본이 필요하다.
코드의 기본 연산을 함수로 모델링한다.
알고리즘 효율을 비교하는 도구이다.
유한 측정과 일반 입력 분석의 보장 범위가 다르다.
초시계와 연산표를 구별한다.
Big-O는 상한, Big-Theta는 상한과 하한을 함께 나타낸다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.20; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.26; 1.2. 복잡도분석.mp4, 00:42:44~00:44:04
더 느슨한 상한도 허용한다.
타이트한 점근적 차수를 나타낸다.
상수배와 충분히 큰 입력을 기준으로 한다.
O(n²)만으로 Θ(n²)를 결론내릴 수 없다.
O는 천장, Θ는 위아래 울타리.
둘 다 반복 계산을 표현하지만 재귀는 호출 관계, 반복은 명시적 상태 갱신을 사용한다. 출처: 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.28; 1. Preliminary+복잡도표현+Recursion.pdf, PDF p.30; 2.1. 순환(Recursion).mp4, 00:23:05~00:29:17
기저 사례와 호출 스택을 고려한다.
루프 조건과 상태 변화를 고려한다.
팩토리얼 등 같은 문제를 해결할 수 있다.
시간 차수가 같아도 보조 공간과 호출 비용은 다르다.
재귀는 내려가 돌아오기, 반복은 제자리 갱신.
Compare 2
셀에 참조를 저장하는지 원시값을 직접 저장하는지가 다르다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.7; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.10; 2.2. 배열(1).mp4, 00:16:40~00:20:16
상이한 유형과 크기의 객체를 가리킬 수 있다.
동일 유형 원시값을 압축해 저장한다.
인덱스 기반 배열 구조이다.
참조의 고정 크기와 원소 본체 크기를 구별한다.
화살표 셀과 값 셀.
크기는 실제 원소 수, 용량은 준비된 셀 수이다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.14; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.16; 3.1. 배열(2)-dynamic_array.mp4, 00:11:54~00:12:51
append 완료 시 하나 증가한다.
확장 시 여러 칸 증가한다.
동적 배열 상태를 설명한다.
빈 셀을 논리적 원소로 세지 않는다.
승객 수와 좌석 수.
배수 확장은 append 누적 선형, 고정 증가 확장은 누적 이차 비용을 만든다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.20; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.23; 3.1. 배열(2)-dynamic_array.mp4, 00:33:25~00:43:47
1+2+4+...의 복사량 합을 가진다.
c+2c+3c+...의 복사량 합을 가진다.
가득 찬 배열의 용량 확장 정책이다.
성장 규칙의 차이가 전체 시간 차수를 바꾼다.
곱해서 키우기와 더해서 키우기.
b=a는 같은 객체를 공유하지만 b=a[:]는 새 바깥 리스트를 만들고 내부 원소 참조를 공유한다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.7; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.8; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.9; 2.2. 배열(1).mp4, 00:23:29~00:30:15
단순 대입으로 같은 리스트 자체를 가리킬 수 있다.
바깥 리스트의 셀은 독립적이지만 내부 가변 객체는 공유될 수 있다.
대상을 깊게 복제하지 않고 참조를 사용한다.
바깥 셀 재대입의 전파 여부는 같지 않다.
같은 그릇을 함께 보기와 새 그릇에 같은 물건 참조 담기.
삽입은 빈자리를 만들고 삭제는 빈자리를 메운다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.28; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.29; 3.2. 배열(3).mp4, 00:06:32~00:13:41
뒤 원소를 오른쪽으로 민다.
뒤 원소를 왼쪽으로 당긴다.
이후 원소들의 이동 때문에 선형 비용이 가능하다.
크기가 각각 하나 증가하고 감소한다.
삽입은 밀기, 삭제는 당기기.
배열은 연속된 고정 셀 구조이고 동적 배열은 이를 확장 가능한 시퀀스로 관리하는 구현이다. 출처: 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.4; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.14; 2. Chapter_5_-_Array-Based_Sequences.pdf, PDF p.16; 3.1. 배열(2)-dynamic_array.mp4, 00:01:07~00:05:38
할당한 셀 수가 정해진 기반 저장영역이다.
부족하면 더 큰 배열을 새로 할당하고 기존 참조를 옮긴다.
인덱스 접근에 연속 셀 배열을 이용한다.
논리적 길이 증가를 지원하기 위한 용량 관리 계층이 추가된다.
고정 그릇과 필요할 때 큰 그릇으로 교체하는 관리자.
Compare 3
스택은 최근 항목, 큐는 오래 기다린 항목을 먼저 제거한다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.5; 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.18; 4.2. Queue-Deque.mp4, 00:00:01~00:02:16
한쪽 top에서 push와 pop을 수행한다.
뒤 enqueue와 앞 dequeue를 수행한다.
삽입 순서에 따라 제거 순서를 정의하는 ADT이다.
LIFO와 FIFO의 순서가 반대이다.
접시 더미와 줄서기.
둘 다 스택 맨 위 값을 반환하지만 제거 여부가 다르다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.5; 4.1. Stack.mp4, 00:08:44~00:10:43
제거해 크기를 하나 줄인다.
조회만 하므로 크기를 유지한다.
빈 스택에서는 오류가 발생한다.
같은 값을 보더라도 상태 변화가 다르다.
pop은 꺼내기, top은 보기.
큐의 뒤에 추가하는 연산과 앞에서 꺼내는 연산이다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.18; 4.2. Queue-Deque.mp4, 00:02:48~00:04:55
새 원소를 뒤에 배치한다.
가장 오래된 원소를 앞에서 제거한다.
FIFO 질서를 함께 유지한다.
크기가 각각 증가·감소한다.
뒤로 입장, 앞으로 퇴장.
큐는 삽입·제거 방향이 정해지고 덱은 양 끝을 모두 갱신한다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.18; 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.29; 4.2. Queue-Deque.mp4, 00:39:30~00:41:30
뒤 삽입과 앞 삭제를 지원한다.
앞뒤 삽입과 앞뒤 삭제를 지원한다.
순서를 가진 원소 모음이다.
덱의 더 넓은 인터페이스가 내부 임의 위치 연산까지 뜻하지는 않는다.
큐의 두 문, 덱의 네 동작.
큐는 동작 명세, 순환 배열 큐는 그 명세의 구체 구현이다. 출처: 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.20; 3. Chapter_6_-_Stacks__Queues__and_Deques.pdf, PDF p.21; 4.2. Queue-Deque.mp4, 00:08:28~00:10:22
FIFO를 정의하며 저장 방식은 지정하지 않는다.
배열·front·size·나머지 연산을 사용한다.
외부에서 같은 큐 동작을 제공할 수 있다.
ADT와 내부 표현을 구분해야 한다.
규칙과 구현.
Compare 4
역방향 링크의 유무가 선행자 탐색과 삭제 비용에 영향을 준다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.9; 4. Chapter_7_-_Linked_List.pdf, PDF p.23; 5.2. Linked-List(2).mp4, 00:40:57~00:43:06
각 노드에 next만 두므로 이전 노드는 순회해 찾는다.
prev를 통해 바로 이전 이웃에 접근한다.
노드들을 링크로 연결해 순서를 나타낸다.
링크 추가 메모리를 쓰는 대신 양방향 이동을 지원한다.
한 방향 화살표와 두 방향 화살표.
각각 선형 리스트의 첫 노드와 마지막 노드를 가리킨다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.5; 4. Chapter_7_-_Linked_List.pdf, PDF p.15; 5.1. Linked-List(1).mp4, 00:27:56~00:31:32
연결 큐의 dequeue 위치이다.
연결 큐의 enqueue 위치이다.
끝 위치를 직접 찾아 주는 참조이다.
원소 하나일 때는 동일 노드를 가리킬 수 있다.
앞문과 뒷문.
같은 단일 연결 기반이어도 사용하는 끝이 다르다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.11; 4. Chapter_7_-_Linked_List.pdf, PDF p.15; 5.2. Linked-List(2).mp4, 00:17:06~00:22:47
head에서 넣고 head에서 뺀다.
tail에서 넣고 head에서 뺀다.
노드와 크기 필드로 상수 시간 끝 연산을 지원한다.
하나는 LIFO, 다른 하나는 FIFO이다.
스택은 앞앞, 큐는 뒤앞.
Position은 특정 위치, PositionalList는 위치들을 관리하는 컨테이너이다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.34; 4. Chapter_7_-_Linked_List.pdf, PDF p.35; 5.3. Linked-List(3).mp4, 00:12:05~00:15:37
노드와 소속 리스트를 감싸며 element()를 제공한다.
위치 기반 삽입·삭제·이동을 제공한다.
내부 노드 직접 노출을 피하는 추상화이다.
한 위치 핸들과 전체 자료구조를 구별한다.
책갈피와 책.
누적 빈도 순위와 최근 접근 순서는 서로 다르다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.45; 4. Chapter_7_-_Linked_List.pdf, PDF p.48; 4. Chapter_7_-_Linked_List.pdf, PDF p.49; 5.3. Linked-List(3).mp4, 00:46:27~00:47:27
횟수 증가만큼 올바른 빈도 순위로 이동한다.
접근 즉시 맨 앞으로 옮긴다.
접근 횟수와 항목 검색을 관리한다.
top(k)는 빈도순에서 쉽지만 MTF에서는 별도 선별이 필요하다.
자주 쓴 순서와 방금 쓴 순서.
센티널은 경계용 내부 노드이고 공개 Position은 실제 원소 위치를 표현한다. 출처: 4. Chapter_7_-_Linked_List.pdf, PDF p.24; 4. Chapter_7_-_Linked_List.pdf, PDF p.34; 4. Chapter_7_-_Linked_List.pdf, PDF p.38; 5.3. Linked-List(3).mp4, 00:21:31~00:22:13
사용자 원소를 저장하지 않는다.
유효 사용자 노드를 가리키며 element()를 제공한다.
양 끝과 내부 구조를 안전하게 처리하는 데 관계한다.
센티널에 대해서는 _make_position이 None을 반환한다.
울타리와 안쪽 자리표.
Compare 5
깊이는 루트까지 위 방향 거리, 높이는 가장 먼 리프까지 아래 방향 거리이다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.9; 5. Chapter_8_-_Trees.pdf, PDF p.10; 6.2. Tree(2).mp4, 00:21:15~00:22:14
루트 깊이는0이고 부모 깊이에1을 더한다.
리프 높이는0이고 자식 높이 최댓값에1을 더한다.
간선 수 기준의 구조적 거리이다.
같은 노드에서도 깊이와 높이는 다를 수 있다.
위로 루트까지, 아래로 리프까지.
노드별 자식 수 제한과 좌우 구별에서 차이가 있다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.14; 5. Chapter_8_-_Trees.pdf, PDF p.31; 6.3. Tree(3).mp4, 00:54:33~00:56:35
자식 수에 고정된2개 상한이 없다.
최대 두 자식을 왼쪽과 오른쪽으로 구별한다.
부모·자식 계층을 표현한다.
일반 트리의 중위 순회를 이진 트리처럼 바로 정의할 수는 없다.
여러 갈래와 좌우 두 갈래.
정이진 트리는 한 자식만 있는 내부 노드를 금지하는 추가 조건을 갖는다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.14; 5. Chapter_8_-_Trees.pdf, PDF p.19; 6.3. Tree(3).mp4, 00:04:43~00:05:12
자식0·1·2개가 가능하다.
자식0개 또는2개만 가능하다.
각 노드는 최대 두 자식을 가진다.
모든 이진 트리에 리프=내부+1이 성립하는 것은 아니다.
이진은 최대 둘, 정이진은 없거나 둘.
부모를 자식들 앞에서 처리하는지 뒤에서 처리하는지가 다르다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.34; 5. Chapter_8_-_Trees.pdf, PDF p.35; 5. Chapter_8_-_Trees.pdf, PDF p.49; 7.1. Tree(4).mp4, 00:03:01~00:04:03; 7.2. Tree(5).mp4, 00:02:00~00:03:26; 7.2. Tree(5).mp4, 00:17:57~00:20:26
현재 노드를 먼저 방문한다.
모든 자식 서브트리 뒤 현재 노드를 방문한다.
일반 트리와 이진 트리에 모두 적용 가능하다.
목차와 하위 결과 합산의 의존 순서가 다르다.
전은 부모 먼저, 후는 부모 나중.
깊이 레벨 중심 순서와 이진 좌우 서브트리 중심 순서이다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.37; 5. Chapter_8_-_Trees.pdf, PDF p.39; 7.1. Tree(4).mp4, 00:20:48~00:27:50
FIFO 큐를 사용해 낮은 깊이부터 방문한다.
왼쪽·노드·오른쪽의 재귀 순서를 따른다.
모든 노드를 체계적으로 방문하는 방법이다.
너비우선은 일반 트리에도 적용하며 중위는 이진 구조에 맞춘다.
층별 방문과 좌중우 방문.
명시적 링크와 산술 인덱스로 계층 관계를 표현한다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.22; 5. Chapter_8_-_Trees.pdf, PDF p.29; 5. Chapter_8_-_Trees.pdf, PDF p.30; 6.1. Tree(1).mp4, 00:00:31~00:01:28; 6.3. Tree(3).mp4, 00:49:57~00:54:29
부모·자식 참조로 국소 갱신을 수행한다.
좌우 자식 인덱스를2i+1·2i+2로 계산한다.
같은 이진 트리 ADT를 구현할 수 있다.
편향 트리는 배열의 빈 셀을 크게 늘릴 수 있다.
화살표로 연결하거나 칸 번호로 계산한다.
같은 이진 구조를 사용하지만 저장 의미와 핵심 연산이 다르다. 출처: 5. Chapter_8_-_Trees.pdf, PDF p.40; 5. Chapter_8_-_Trees.pdf, PDF p.52; 5. Chapter_8_-_Trees.pdf, PDF p.55
값의 대소관계로 검색 경로를 정한다.
연산자와 피연산자로 산술 계산을 표현한다.
좌우 서브트리의 구분이 중요하다.
BST의 순서 규칙이 일반 수식 트리에 적용되는 것은 아니다.
찾기 위한 크기 순서와 계산하기 위한 연산 구조.