[CS 지식] 배열과 연결 리스트

😎·2023년 2월 18일
0

CS지식

목록 보기
3/7

📌배열과 연결 리스트

배열과 연결리스트 자료구조에 대한 포스팅입니다
제가 이해한 대로 서술할 예정이니 참고만 부탁 드립니다 😊

배열 (Array)

배열은 데이터들이 메모리 공간에서 연속적으로 저장되어 있는 자료구조입니다
연속적으로 저장되어 있기때문에 배열의 index 번호를 통하여 각 데이터들에 접근할 수 있으므로 탐색에 용이 하다고 할 수 있습니다!
배열은 처음 생성할때 크기가 정해지기 때문에 이후 변경할수 없다는 특징이 있습니다 ☝


연결 리스트 ( Linked List )

연결 리스트는 데이터 저장을 위해 노드라는 개념이 이용되며,
노드들이 순차적으로 연결된 형태의 자료구조 입니다.
각각의 노드들은 저장하고 있는 데이터와 다음 순번의 노드를 가리키는 포인터로 이루어져 있으며,
첫번째 노드를 head, 마지막 노드를 tail이라고 합니다! 😊
배열과는 다르게 메모리를 연속적으로 사용하지 않으므로 탐색의 경우 배열에 비해 불리할 수 있으나 데이터의 삽입, 삭제에는 더 용이하다고 볼 수 있습니다! ☝
또한 배열과 달리 크기가 정해져있지 않습니다


배열과 연결리스트의 비교

각 자료구조의 장점

  • 배열: 인덱스를 통해 데이터에 접근할 수 있으므로 탐색, 접근에 용이
  • 연결리스트: 각각의 노드들이 연속적으로 저장되어 있지 않으므로 데이터의 삭제, 삽입에 용이

각 자료구조의 단점

  • 배열: 데이터의 삽입, 삭제에 시간소요가 연결리스트에 비해 길수 있음
  • 연결리스트: 접근하고자 하는 데이터에 임의 접근이 불가하여, 노드의 head 부터 탐색을 진행하므로 배열에 비해 시간소요가 길 수 있음

각 자료구조의 용도

  • 배열: 데이터에 빠른 접근이 요구 되고 데이터의 삭제, 삽입의 빈도가 적을 때 사용
  • 연결리스트: 데이터의 삭제, 삽입의 빈도가 잦고 탐색, 접근의 빈도가 적을때 사용
profile
개발 블로그

0개의 댓글