자료구조론_7급(최종)정답(2025-07-05 / 314.1KB / 38회)
자료구조론(7급) (과목코드 : 080) 2025년 군무원 채용시험 응시번호 : 1. 다음 C 프로그램의 배열 에 대한 설명으로 가장 적절한 것은? 성명 : 4. 다음 그래프에 대한 설명으로 가장 적절하지 않은 것은? #include int main(){ int A[2][3] = {10, 20, 30, 40, 50, 60}; return 1; } ① 에는 40이 저장된다. ② 의바로다음에연속적으로저장되는원소는 이다. ③ 를 위해 총 12바이트가 필요하다. ④ 의바로다음에연속적으로저장되는원소는 이다. 2. 다음은 단일 연결 리스트의 노드들이 순서대로 연결된 구조이다. 아래는slow와 fast포인터를 이용하여 위의 리스트를 탐색하는 C언어 코드이다. 해당 코드가 종료된 후, slow가 가리키는 노드의 값은? Node*slow=head; Node*fast =head; while (fast !=NULL&&fast->next!=NULL){ slow=slow->next; fast = fast->next->next; } ① 27 ③ 41 ② 34 ④ 59 3. 스택을 이용하여 다음 후위 표기식 연산을 수행 하였다. 연산 결과는? 5 1 2 + 4 * + 3 ① 14 ③ 16 ② 15 ④ 18 ① 빈칸에 들어갈 수가 10일 때, 위 그래프에 대해 Kruskal 알고리즘을 적용하면 여섯번째로 선택되는 간선은 이다. ② 빈칸에 들어갈 수가 10일 때, 위 그래프의 정점 에서 Dijkstra 알고리즘을 적용하면 를 제외하고 여섯 번째로 결과가 결정되는 정점은 이다. ③ 빈칸에 들어갈 수가 4일 때, 위 그래프의 정점 에서 Prim 알고리즘을 적용하면 여섯 번째로 선택되는 간선은 이다. ④ 빈칸에 들어갈 수가 4일 때, 위 그래프의 정점 에서 Dijkstra 알고리즘을 적용하면 를 제외하고 여섯 번째로 결과가 결정되는 정점은 이다. 5. 해싱의 선형탐사(linear probing) 기법에 대한 설명으로 가장 적절한 것은? ① 충돌(collision)이 발생할 경우 데이터가 손실될 수 있다. ② 최악의경우삽입연산은 시간에수행된다. ③ 배열 외에 추가적인 메모리가 필요하다. ④ 데이터가 군집화(clustering)되기 쉽다. 자료구조론(7급) 5- 1 6. 이중연결리스트의 노드를 나타내는 구조체 node에 이전 노드를 가리키는포인터llink와 다음 노드를 가리키는 포인터 rlink가 있다고 하자. 다음 중 포인터 p가 가리키는 노드를삭제하는연산순서로 가장적절한것은? (단, 포인터p가가리키는노드의 왼쪽과오른쪽에1개이상의노드가더있는것으로 가정한다) ① p→llink→rlink = p→llink; p →rlink →llink = p→rlink; ② p→llink→rlink = p→rlink; p →rlink →llink = p; ③ p→llink→rlink = p→rlink; p →rlink →llink = p→llink; ④ p→rlink→llink = p→llink; p →llink →rlink = p; 7. 다음 큐를 크기가 인 환형배열로 구현했을 때, 큐의 삽입 연산의 의사코드이다. 큐의 front와 rear를 나타내는 인덱스가 각각 와 일 때, 아래 설명 중 가장 적절하지 않은 것은? (단, 함수 size()는 큐에 삽입된 원소의 개수를 반환하는 함수이다) Algorithm enqueue() if size() = then exit else ← ←mod ① 최악수행시간은 이다. ② 일 때 enqueue가 호출되면 에 원소가 삽입된다. ③ 일 때 enqueue가 호출되면 에 원소가 삽입된다. ④ 일 때 enqueue가 호출되면 에 원소가 삽입된다. 8. B-tree에 대한 설명으로 가장 적절하지 않은 것은? ① 각 노드는 최대 자식 수만큼 키를 가진다. ② 탐색연산의시간복잡도는항상O(log n)이다. ③ 모든 리프 노드는 동일한 깊이를 갖는다. ④ B-tree는 데이터베이스 인덱스 구조로 자 주 사용된다. 9. 우선순위 큐와일반큐의비교로가장적절한것은? ① 탐색하는 원소의 특징은 동일하지만 삭제하는 원소의 특징이 서로다르다. ② 우선순위 큐는 크기에 대한 제한이 있다. ③ 우선순위 큐는 배열로만 구현할 수 있다. ④ 삽입되는 순서로 저장하는 배열을 이용하여 각각 구현했을 때, 삭제 연산은 일반 큐가 더 빠르다. 10. 정점 개수가 , 간선 개수가 인 그래프를 인접행렬과 인접리스트로 각각 구현했을 때 각각의 공간복잡도로 가장 적절한 것은? ① ② ③ ④ 11. 다음 허프만 코드로 압축했을 때, 총 비트 수는 얼마인가? 문자 빈도(출력횟수) 허프만코드 A B C 6 3 2 0 10 110 D ① 16 ③ 20 1 ② 18 ④ 21 111 자료구조론(7급) 5- 2 12. 다음과 같이 정수 10개를 2-3-4 트리에 순서대로 삽입하였다. 삽입도중에는트리의균형을유지하기 위해 분할(split)과 승격(promote)이 자동으로 수행 되며, 삽입 방식은 탑-다운(top-down) 방식이다. (즉, 트리를 내려가며 삽입 전에 4-노드를 만나면 미리분할을수행하고삽입한다. 또한, 삽입결과로 만들어진 4-노드는 그대로 유지한다) 삽입 순서: 10, 20, 5, 6, 12, 30, 7, 17, 3, 2 모든 삽입이 완료된 후, 트리의 리프 노드들에 저장된 값들을 왼쪽에서 오른쪽 순서로 나열한 것으로 가장 적절한 것은? (※ 각 [ ]는 하나의 리프 노드를 나타낸다) ① [2, 3, 5], [7], [12, 17], [30] ② [2, 3], [5, 7], [12, 17], [30] ③ [3, 5], [6, 7], [12, 17], [30] ④ [2, 3, 5], [7], [12], [17, 30] 13. 다음 방향그래프에서 위상 정렬(topological sort) 알고리즘을 수행했을때나올수있는위상순서를 모두나열한것은? 1. A → B → C → D → E → F → G 2. A → B → C → E → D → F → G 3. A → C → B → D → E → F → G 4. B → A → C → E → D → F → G ① 1, 2 ③ 1, 2, 4 ② 1, 2, 3 ④ 1, 2, 3, 4 14. 3차원 배열 a[4][6][5]의 원소들을 1차원 배열에 행 우선순서로저장한다고 하자. 배열의 첫 번째 원소 a[0][0][0]의 주소를 α라고 할 때, a[2][4][2]의 주소는? ① α + 26 ② α + 82 ③ α + 122 ④ α + 155 15. 다음 함수를 이용하여 f(3)을 수행할 경우, 출력 되는 순서는? void f(int n) { if (n == 0) return; cout void AAA(int *Q){ Q[0] = 30; } void BBB(int R){ R=30; } int main(){ int P[2] = {10, 20}; ㉠; printf(“%d”, P[0]); return 1; } ① ㉠에 들어갈 코드가 AAA(P)라면 Q에 P의 원소들이 모두 복사된다. ② ㉠에 들어갈 코드가 AAA(P)라면 화면에는 10이 출력된다. ③ ㉠에 들어갈 코드가 BBB(P[0])라면 화면에는 30이 출력된다. ④ ㉠에 들어갈 코드가 BBB(P[0])라면R에P[0]의 값이 복사된다. 21. 다음 데이터를 순서(왼쪽→오른쪽)대로 입력하여 이진탐색트리를 구성하였다. 구성된 이진탐색트리 에서 노드 60과 70을 차례대로 삭제한 후 구성 되는 이진탐색트리에서 단말노드의 개수는 몇 개 인가? (단, 이진탐색트리의 삭제는 중위 선행자 방법을 사용한다) 50, 30, 70, 20, 40, 60, 80, 55, 65, 90 ① 3 ③ 5 ② 4 ④ 6 자료구조론(7급) 5- 4 22. 다음 힙정렬 알고리즘을 사용하여 오름차순 정렬을 수행하고자 한다. 먼저 첫 번째 반복 스텝으로 전체 배열을 이용해 최대 힙을 구성한 후, 가장 큰 값을배열의 끝으로 이동시키고, 남은 부분에 대해 힙 재구성을 수행하였다. 이 과정을 마친 직후의 배열 상태로 가장적절한 것은? [25, 30, 8, 55, 16, 5] ① 30, 25, 8, 5, 16, 55 ② 25, 30, 8, 16, 5, 55 ③ 16, 25, 8, 5, 30, 55 ④ 30, 8, 25, 5, 16, 55 23. 가중치가 없는 무향그래프(undirected graph) 에서 두 정점 사이의 최단 경로로 가장 적절한 것은? ① Kruskal 알고리즘 ② Floyd-Warshall 알고리즘 ③ 너비우선탐색(BFS) 알고리즘 ④ Prim 알고리즘 24. 다음 수식에 대해 스택을 이용하여 연산을 수행 하고자 할 때 연산 과정에서 스택에 저장된 괄호의 수가가장많아지는순간, 괄호의개수는? (1 + ((2 * 3)- (4 / (5 + 6))) + (7– 8)) ① 3 ③ 5 ② 4 ④ 6 25. 다음과 같이 순서대로 삽입하여 레드-블랙 트리를 구성하였다. 모든 삽입이 완료된 이후, 단말 노드들과 각 노드의 색상을 왼쪽에서 오른쪽 순서로 가장 올바르게 나열한 것은? 삽입 순서: 10 → 5 → 20 → 15 → 17 ① 5(빨강), 15(검정), 30(검정) ② 5(검정), 17(검정), 20(빨강) ③ 10(검정), 15(검정), 20(검정) ④ 5(검정), 15(빨강), 20(빨강) 자료구조론(7급) 5- 5