cs 공부

Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요.

늘곰's 2023. 11. 17. 13:06

Array (배열):

  • 설명:
    • 배열은 동일한 자료형의 요소들이 순서대로 저장된 공간입니다.
    • 각 요소는 인덱스를 통해 접근할 수 있으며, 인덱스는 0부터 시작합니다.
    • 고정된 크기를 가지며, 크기가 변경되지 않습니다.
  • 사용 방법:
    • 데이터를 순차적으로 저장해야 할 때나 인덱스를 통한 빠른 접근이 필요한 경우에 사용됩니다.
    • 메모리에 연속적으로 저장되므로 캐시 지역성이 높아 효율적인 메모리 액세스가 가능합니다.
    • 정적 크기로 인해 크기를 동적으로 변경해야 하는 경우에는 적절하지 않을 수 있습니다.

LinkedList (연결 리스트):

  • 설명:
    • 연결 리스트는 노드라 불리는 객체들이 포인터로 연결된 구조를 갖습니다.
    • 각 노드는 데이터와 다음 노드를 가리키는 포인터로 이루어져 있습니다.
    • 크기가 동적으로 조절될 수 있습니다.
  • 사용 방법:
    • 삽입과 삭제 연산이 빈번하게 발생하는 경우에 효율적입니다. 배열은 크기가 고정되어 있어 중간에 요소를 추가하거나 삭제하는 데 비용이 높을 수 있습니다.
    • 메모리의 불연속적인 공간을 사용하므로 캐시 효율성은 낮을 수 있지만, 중간에 요소를 추가하거나 삭제하는 데 유리합니다.
    • 포인터를 이용하여 연결되어 있기 때문에 메모리 사용이 상대적으로 많을 수 있습니다.

사용 비교:

  • Array 사용:
    • 빠른 인덱스 기반 접근이 필요한 경우.
    • 크기가 고정되어 있고, 자주 참조되는 데이터를 메모리에 연속적으로 저장해야 할 때.
    • 크기가 작고 고정되어 있는 데이터 집합에 적합합니다.
  • LinkedList 사용:
    • 데이터의 삽입 또는 삭제가 빈번하게 발생하는 경우.
    • 크기가 동적으로 변해야 하는 경우.
    • 데이터의 순서가 자주 변경되는 경우.