1.쉬움
이진 트리의 전위 순회(preorder)는 노드를 어떤 순서로 방문합니까?
- A노드, 왼쪽 서브트리, 오른쪽 서브트리
- B왼쪽 서브트리, 노드, 오른쪽 서브트리
- C위에서부터 레벨별로
- D왼쪽 서브트리, 오른쪽 서브트리, 노드
2.쉬움
스택의 맨 위에 원소를 추가하는 연산의 이름은 무엇입니까?
- APeek
- BPush
- CPop
- DEnqueue
3.쉬움
무방향 그래프에서 정점의 차수(degree)란 무엇입니까?
- A인접 리스트에서의 위치
- B그 정점에서 출발하는 가장 긴 경로의 길이
- C그래프의 정점 수
- D그 정점에 연결된 간선의 수
4.보통
개방 주소법을 사용하는 해시 테이블에서 가능한 최대 적재율은 얼마입니까?
- A0.5
- B2
- C1
- D최대값이 없다
5.보통
인덱스 0부터 시작하는 배열에 저장된 이진 힙에서 인덱스 i인 노드의 부모는 어디에 있습니까?
- A인덱스 2i + 1
- B인덱스 ⌊i / 2⌋ + 1
- C인덱스 i − 1
- D인덱스 ⌊(i − 1) / 2⌋
6.보통
이진 힙을 포인터 없이 배열에 저장할 수 있는 이유는 무엇입니까?
- A완전 이진 트리이므로 위치가 간단한 인덱스 공식을 따르기 때문에
- B배열이 키를 자동으로 정렬된 순서로 유지하므로 포인터가 필요 없기 때문에
- C힙의 모든 키가 같기 때문에
- D힙에는 원소가 100개를 넘지 않기 때문에
7.어려움
동적 배열은 가득 차면 두 배로 커집니다. 많은 구현이 배열이 절반이 아니라 4분의 1만 찼을 때에만 축소하는 이유는 무엇입니까?
- A경계 근처에서 push와 pop이 번갈아 일어날 때 반복적인 크기 조정을 피하기 위해
- B절반에서 반으로 줄이면 원소를 잃기 때문에
- C배열을 정렬된 상태로 유지하기 위해
- D메모리 할당기가 블록의 4분의 1 단위로만 메모리를 해제할 수 있기 때문에
8.어려움
힙 정렬에 대한 진술 중 옳은 것은 무엇입니까?
- A어떤 입력에서든 O(n) 시간에 실행된다
- B추가 저장소로 이진 탐색 트리가 필요하므로 O(n)의 추가 메모리를 쓴다
- C안정적이며 O(n)의 추가 메모리가 필요하다
- D최악의 경우 O(n log n) 시간에 제자리 정렬하지만 안정적이지 않다
정답표
- 1. A · 노드, 왼쪽 서브트리, 오른쪽 서브트리
- 2. B · Push
- 3. D · 그 정점에 연결된 간선의 수
- 4. C · 1
- 5. D · 인덱스 ⌊(i − 1) / 2⌋
- 6. A · 완전 이진 트리이므로 위치가 간단한 인덱스 공식을 따르기 때문에
- 7. A · 경계 근처에서 push와 pop이 번갈아 일어날 때 반복적인 크기 조정을 피하기 위해
- 8. D · 최악의 경우 O(n log n) 시간에 제자리 정렬하지만 안정적이지 않다
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.