목차


  1. Array

  2. List

    2.1 ArrayList

    2.2 LinkedList

    2.3 Doubly LinkedList

    2.4 Circular Linked List

추상 자료형(ADT, Abstract Data Type)

추상 자료형은 논리적인 관점에서 **“무엇을 할 수 있는가”**에 대한 **명세(specification)**이다.

쉽게 말해, 데이터의 행동 규칙을 정의하는 추상적인 개념이다.

**정보 은닉(Information Hiding)**이라는 중요한 원칙에 기반하며, ADT는 데이터를 저장하는 구체적인 방법을 숨기고, 데이터에 어떤 연산을 적용할 수 있는지에 대한 인터페이스만 외부 공개한다.

예를 들어, List라는 ADT는 add(), remove(), get()과 같은 연산을 사용할 수 있다는 것만 알면 되지, 그 내부에서 어떻게 메모리에 저장되는지(연속된 배열인지, 연결된 노드인지)는 알 필요가 없다.

Ex) Stack, Queue, List, Dictionary

자료구조(Data Structure)

반면, 자료구조는 물리적인 관점에서 **“어떻게 구현되었는가?”**에 대한 **실제 구현(implementation)**이다.

이는 데이터를 메모리상에 효율적으로 조직하고 저장하는 구체적인 방법을 의미한다.