상세 컨텐츠

본문 제목

Array와 LinkedList를 비교설명하시오

면접준비

by 재호링 2024. 4. 15. 09:30

본문

(배열)Array 는  정적 자료구조라고 불린다

즉, 배열을 만들기 위해서는 크기를 미리 정해놓게 되는데

이렇게 정의하면 해당 크기 만큼의 연소괸 메모리 주소를 할당 받게 됩니다.

 

연속된 메모리 주소를 할당 받고 있기 때문에

데이터가 인덱스(index)라는 것을 갖게 되는데

우리가 array[0] 같은 식으로 배열에 접근할 때 대괄화

안에 숫자가 index 입니다.

 

대괄호 안에 index를 갖게 된다는 것은 

즉, 임의 접근이 가능하다는 장점이 있어

접근과 탐색에 용이합니다.

 

하지만 크기를 미리 정해놓았기 때문에 수정하는 것은 불가하고

해당 배열 크기 이상의 데이터를 저장할 수 없다는 단점이 있습니다.

 

 

연결리스트(Linked List)

링크드 리스트는 동적 자료구조이며 크기를 정할 필요 없고

배열처럼 연속된 메모리 주소를 할당 받지 않습니다.

 

대신 노드 라는게 존재하며, 그 노드 안에 데이터가 있고, 다음 데이터를 가리키는 주소를

가지고 있어 연결되어 이어진 형태입니다.

 

링크드 리스트는 크기 제한이 없으며,

그로인해 데이터 추가 삭제가 자유롭다는 장점이 있습니다.

 

반면 연속적인 메모리 주소를 할당 받지 않았기 때문에

임의 접근은 불가능합니다.

즉, 데이터를 탐색할 때 순차적인 접근을 필요로합니다.

 

차이점

배열 연결리스트
정적 자료구조 동적 자료구조
미리 크기를 정해 놓음 크기를 정할 필요가 없음
연속된 메모리 주소를 할당 받음 연속된 메모리 주소를 할당 받지 않음
접근, 탐색 용이 추가, 삭제 용이
index 존재 Node 존재

 

 

활용 사례

배열은 불규칙 적인 정보를 저장하거나, 이후에 다시 사용할 정보를 저장할때 사용

 

연결리스트는 음악 플레이어 앱에 이전 곡과 다음 곡이 연결되어 있듯 이런 기능이 연결리스트로 활용 가능하고작업한 어느 시점으로 되돌아갈 수 있고 다시 최근으로 돌아올 수 있는데 이럴 때 연결리스트를 활용한다고 합니다.

'면접준비' 카테고리의 다른 글

Stack과 Queue를 비교설명해주시오  (0) 2024.04.15

관련글 더보기