1.쉬움
이중 연결 리스트의 각 노드에는 무엇이 들어 있습니까?
- A데이터, 다음 노드에 대한 포인터, 이전 노드에 대한 포인터
- B데이터 사본 두 개와 포인터 하나
- C데이터와 포인터 두 개로, 하나는 다음 노드를, 다른 하나는 그 다음 다음 노드를 가리킨다
- D데이터와 다음 노드에 대한 포인터만
2.쉬움
배열에서는 O(1)이지만 단일 연결 리스트에서는 O(n)인 연산은 무엇입니까?
- Ahead에 삽입하기
- B인덱스 i의 원소에 접근하기
- Chead 원소 제거하기
- D첫 번째 원소 읽기
3.쉬움
트리에서 노드의 깊이(depth)란 무엇입니까?
- A그 서브트리의 노드 수
- B그 노드에서 가장 깊은 리프까지의 간선 수
- C그 노드의 자식 수
- D루트에서 그 노드까지의 간선 수
4.보통
균형 이진 탐색 트리에서 키를 탐색하는 시간 복잡도는 무엇입니까?
- AO(1)
- BO(n log n)
- CO(n)
- DO(log n)
5.보통
무방향 그래프의 인접 행렬에 대해 참인 것은 무엇입니까?
- A주대각선에 대해 대칭이다
- B각 행에 1이 정확히 하나 있다
- C항상 상삼각 행렬이다
- D주대각선에는 항상 1이 들어 있다
6.보통
적재율이 임계값을 넘은 뒤 해시 테이블이 재해싱(rehash)하면 무슨 일이 일어납니까?
- A기존 키를 제자리에서 정렬한다
- B더 큰 테이블을 할당하고 모든 키를 다시 삽입한다
- C자리를 만들기 위해 가장 오래된 키를 삭제한다
- D충돌한 키만 테이블 끝의 새 오버플로 리스트로 옮긴다
7.어려움
모든 B-트리를 완벽하게 균형 잡힌 상태로 유지하는 성질은 무엇입니까?
- A모든 노드의 자식이 정확히 두 개이다
- B각 노드가 키를 하나 저장한다
- C모든 리프가 같은 깊이에 있다
- D키는 루트에만 저장된다
8.어려움
동적 배열은 가득 차면 두 배로 커집니다. 많은 구현이 배열이 절반이 아니라 4분의 1만 찼을 때에만 축소하는 이유는 무엇입니까?
- A경계 근처에서 push와 pop이 번갈아 일어날 때 반복적인 크기 조정을 피하기 위해
- B배열을 정렬된 상태로 유지하기 위해
- C절반에서 반으로 줄이면 원소를 잃기 때문에
- D메모리 할당기가 블록의 4분의 1 단위로만 메모리를 해제할 수 있기 때문에
정답표
- 1. A · 데이터, 다음 노드에 대한 포인터, 이전 노드에 대한 포인터
- 2. B · 인덱스 i의 원소에 접근하기
- 3. D · 루트에서 그 노드까지의 간선 수
- 4. D · O(log n)
- 5. A · 주대각선에 대해 대칭이다
- 6. B · 더 큰 테이블을 할당하고 모든 키를 다시 삽입한다
- 7. C · 모든 리프가 같은 깊이에 있다
- 8. A · 경계 근처에서 push와 pop이 번갈아 일어날 때 반복적인 크기 조정을 피하기 위해
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.