알고리즘(5) 자료구조의 개념

dongmin·2026년 3월 23일

📚 자료구조(Data Structure) 정리

이번 포스팅에서는 자료구조(Data Structure)에 대해 공부한 내용을 정리해보려고 한다.
원래 자료구조는 알고리즘의 선수과목이지만, 함께 묶어서 이해하는 것이 더 자연스럽다고 생각하여 같이 정리한다.


📌 자료구조(Data Structure)란?

데이터를 효율적으로 저장하고 접근하고 수정, 관리하기 위한 방식이다.


📌 추상적 자료형(ADT)과 자료구조의 관계

자료구조를 제대로 이해하려면 추상적 자료형(Abstract Data Type, ADT) 개념이 중요하다.


✔️ 추상적 자료형(ADT)이란?

  • 데이터의 형태와 연산을 수학적으로 정의한 개념적 모델
  • "무엇을 할 수 있는가?"에 초점

✔️ 자료구조란?

  • ADT에서 정의한 연산을 실제로 구현한 것
  • "어떻게 구현하는가?"에 초점

💡 예시: 스택(Stack)

  • 추상적 자료형ADT:
    • 연산: push, pop
    • 특징: 후입선출(LIFO)
  • 자료구조:
    • 배열이나 연결 리스트로 구현된 스택
    • 실제 프로그램에서는 콜 스택(Call Stack) 등으로 사용됨

📌 자료구조의 종류

자료구조는 여러 기준으로 나눌 수 있지만, 대표적으로 다음과 같이 구분된다.


1️⃣ 선형 자료구조 (Linear Data Structure)

데이터가 일렬로 연결된 구조

  • 배열 (Array)
  • 연결 리스트 (Linked List)
  • 스택 (Stack)
  • 큐 (Queue)
  • 덱 (Deque)

2️⃣ 비선형 자료구조 (Non-linear Data Structure)

데이터가 계층적 또는 복잡한 관계를 가지는 구조

  • 트리 (Tree)
  • 트라이 (Trie)
  • 그래프 (Graph)

3️⃣ 연관(키-값) 자료구조

데이터를 키(Key) - 값(Value) 형태로 저장

  • 맵 (Map) / 연관 배열 (Associative Array)
  • 해시 테이블 (Hash Table)

4️⃣ 기타 분류

  • 혼합 자료구조 (Composite Data Structure)
    • 여러 구조가 결합된 형태

📌 정리

  • 자료구조는 데이터를 효율적으로 다루기 위한 방법
  • ADT는 개념적 정의, 자료구조는 구현
  • 문제에 따라 적절한 자료구조 선택이 매우 중요하다

0개의 댓글