C 언어에서 배열과 연결리스트에 대한 설명으로 옳지 않은 것은? | [7급 국가직 자료구조론] 21년 1회차 기출문제 상세 페이지
1[7급 국가직 자료구조론] 21년 1회차
C 언어에서 배열과 연결리스트에 대한 설명으로 옳지 않은 것은?
1
일반적으로 두 개의 정수형 데이터 세트 {1,2,3}과 {4,5,6,7,8}을 합병하여 {1,2,3,4,5,6,7,8}로 만드는 연산을 수행할 경우, 두 데이터 세트의 자료구조를 연결리스트로 만들면, 정수형 배열로 만드는 것보다 시간 복잡도를 낮게 구현할 수 있다.2
일반적으로 정수형 데이터 세트 {1,2,3,4}를 {4,1,2,3}으로 변경하는 연산을 수행할 경우, 해당 데이터 세트의 자료구조를 연결리스트로 만들면, 정수형 배열로 만드는 것보다 더 빠르게 수행시킬 수 있다.3
일반적으로 정수형 데이터 세트 {1,2,3,4}를 {2,3,4,5}로 각 요소에 +1 연산을 수행할 경우, 데이터 세트의 자료구조를 연결 리스트로 만들면, 정수형 배열로 만드는 것보다 메모리를 적게 차지한다.4
일반적으로 정수형 데이터 세트 {1,2,3,4}를 {0,1,2,3,4}로 새로운 값을 추가하는 연산을 수행할 경우, 데이터 세트의 자료구조를 연결리스트로 만들면, 정수형 배열로 만드는 것보다 더 빠르게 연산을 수행시킬 수 있다.해설
각 요소에 +1을 하는 경우 연결리스트가 배열보다 메모리를 적게 차지한다는 설명이 옳지 않다. 연결리스트는 노드마다 다음 노드를 가리키는 포인터를 추가로 저장하므로 같은 개수의 정수를 담으면 배열보다 메모리를 더 쓴다.
대신 연결리스트는 삽입·연결·재배치를 포인터 변경만으로 처리할 수 있어, 원소 이동이나 복사가 필요한 배열보다 유리하다.
- 두 집합의 합병은 앞 리스트의 마지막 노드를 뒤 리스트의 첫 노드에 연결하면 되지만 배열은 원소를 새 공간에 복사해야 하므로, 연결리스트 쪽이 시간 복잡도가 낮다.
- {1,2,3,4}를 {4,1,2,3}으로 바꾸는 것은 마지막 노드를 떼어 앞에 붙이면 되므로, 모든 원소를 한 칸씩 밀어야 하는 배열보다 빠르다.
- 맨 앞에 0을 추가하는 것은 새 노드를 head 앞에 연결하면 끝나지만 배열은 기존 원소를 모두 뒤로 옮겨야 하므로 연결리스트가 빠르다.
오류나 개정된 내용이 보이면 알려주세요
이어서 풀어보기
[7급 국가직 자료구조론] 21년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요비슷한 기출
- c언어에서산술연산자가아닌것은? {"answer":4,"content":[{"content":"%","url":""},{"content":"*\n","u21년-1회차-정보처리기사-필기
- c언어에서비트논리연산자에해당하지않는것은? {"answer":2,"content":[{"content":"^","url":""},{"content":"?20년-1, 2회차-정보처리기사-필기
- 대추나무빗자루병에대한설명으로옳은것은? {"answer":4,"content":[{"content":"균류에의해전반된다.\n","url":""},{"co17년-1회차-산림기사-필기