1.쉬움
스택의 peek(또는 top) 연산은 무엇을 합니까?
- A맨 위 원소를 제거하지 않고 반환한다
- B스택의 맨 아래 원소를 반환한다
- C스택의 모든 원소를 제거한다
- D맨 위 원소를 제거하고 반환한다
2.쉬움
이진 트리의 전위 순회(preorder)는 노드를 어떤 순서로 방문합니까?
- A왼쪽 서브트리, 노드, 오른쪽 서브트리
- B위에서부터 레벨별로
- C왼쪽 서브트리, 오른쪽 서브트리, 노드
- D노드, 왼쪽 서브트리, 오른쪽 서브트리
3.쉬움
텍스트 편집기의 "실행 취소"(undo) 기능에 가장 적합한 자료 구조는 무엇입니까?
- A해시 셋
- B스택
- C큐
- D그래프
4.보통
적재율이 임계값을 넘은 뒤 해시 테이블이 재해싱(rehash)하면 무슨 일이 일어납니까?
- A더 큰 테이블을 할당하고 모든 키를 다시 삽입한다
- B충돌한 키만 테이블 끝의 새 오버플로 리스트로 옮긴다
- C자리를 만들기 위해 가장 오래된 키를 삭제한다
- D기존 키를 제자리에서 정렬한다
5.보통
이진 힙에 새 원소는 어떻게 삽입됩니까?
- A배열의 끝에 놓고 힙 성질을 위반하는 동안 위로 올린다(sift up)
- B루트에 놓고 아래로 내린다(sift down)
- C더 큰 원소들을 모두 오른쪽으로 한 칸씩 밀어 정렬된 위치에 삽입한다
- D힙 전체를 처음부터 다시 만든다
6.보통
정점이 V개인 그래프의 인접 행렬은 얼마만큼의 메모리를 사용합니까?
- AO(V + E)
- BO(log V)
- CO(E)
- DO(V²)
7.어려움
키 5, 3, 8, 1을 이 순서로 빈 배열 기반 이진 최소 힙에 삽입합니다. 최종 배열은 무엇입니까?
- A[3, 1, 8, 5]
- B[1, 3, 5, 8]
- C[1, 3, 8, 5]
- D[1, 5, 8, 3]
8.어려움
O(1)의 추가 메모리로 단일 연결 리스트에 사이클이 있는지 어떻게 탐지할 수 있습니까?
- A포인터 하나는 한 칸씩, 다른 하나는 두 칸씩 움직여 만나는지 확인한다
- B개수가 리스트 길이 필드를 넘을 때까지 노드를 센다
- C리스트를 정렬하고 중복을 찾는다
- D방문한 모든 노드를 해시 집합에 저장한다
정답표
- 1. A · 맨 위 원소를 제거하지 않고 반환한다
- 2. D · 노드, 왼쪽 서브트리, 오른쪽 서브트리
- 3. B · 스택
- 4. A · 더 큰 테이블을 할당하고 모든 키를 다시 삽입한다
- 5. A · 배열의 끝에 놓고 힙 성질을 위반하는 동안 위로 올린다(sift up)
- 6. D · O(V²)
- 7. C · [1, 3, 8, 5]
- 8. A · 포인터 하나는 한 칸씩, 다른 하나는 두 칸씩 움직여 만나는지 확인한다
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.