참고자료
[자료구조] 연속된 자료 구조 VS 연결된 자료 구조(배열 vs 링크드리스트)
배열과 링크드 리스트
간략 설명! 배열(Array)과 연결 리스트(Linked List)
배열 : 정적 자료구조라고 불립니다. 배열을 만들기 위해서는 미리 크기를 정해놓게 되고, 그렇게 되면 해당 크기 만큼의 연속된 메모리 주소를 할당받게 됩니다.
-> 연속된 메모리를 할당? = 인덱스(index)를 갖게 됨 !
index를 갖게 된다는 것은 즉 임의 접근이 가능하다는 장점이 있어서 접근과 탐색에 용이합니다.
하지만 "크기를 미리 정해놓았기 때문에" 수정은 불가능하며 해당 배열 크기 이상의 데이터를 저장할 수 없다는 단점이 있습니다.
크기를 변경하는 방법(편법으로)은 새로운 배열을 만들어 크기를 늘리고 지금 배열을 복사해서 넣어 늘어난 것처럼 보이게 해줄수는 있습니다.
[ 배열의 특징 ]
index 기반의 자료구조
연속적으로 할당된 기억 공간
배열의 크기가 n이라면 n개의 자료를 하나의 주소( 0번째 index 주소)로 접근할 수 있음
링크드리스트: 동적 자료구조라고 불립니다. 그러므로 크기를 정할 필요가 없고, 배열처럼 연속된 메모리 주소를 할당 받지 않습니다.
대신 각 원소를 노드(Node)라고 부르며, 그 노드 안에 데이터가 있고, 다음 데이터를 가리키는 주소를 가지고 있는, 연결되어 이어진 형태 이다.
링크드리스트는 크기를 정해 놓지 않았기 때문에 크기의 제한이 없어서, 데이터 추가, 삭제가 자유롭다는 장점이 있다.
반면에 배열처럼 연속적인 메모리 주소를 할당 받지 않았기 때문에 임의로 접근하는 것이 불가능합니다. 즉, 데이터를 탐색할 때 순차적으로 접근해야 한다는 단점
[ 연결 리스트의 특징 ]
1.포인터 기반의 자료구조
2.메모리 공간에 임의의 위치에 이산되어 저장되어 있음
3.한 원소는 다음 원소를 가리키는 link를 가지고 있음