[Computer Science] 자료구조

양영준·2026년 3월 4일

Computer Science

목록 보기
10/12
post-thumbnail

📌 자료구조

자료구조 (Data Structure)는 컴퓨터 과학에서 데이터의 효율적인 접근 및 수정을 가능하게 하는 방법 혹은 메커니즘을 의미한다.
더 정확하게 표현하면 자료 구조는 데이터 값의 모임, 또 데이터 요소 간의 관계, 연산 및 액세스 방법(함수나 명령)을 뜻한다.

💡 특징

  1. 데이터를 조직화하고 저장하는 방법을 정의하여 데이터를 논리적으로 구조화하고 저장공간을 관리할 수 있다.
  2. 데이터에 대해 수행할 수 있는 연산을 자료구조에 따라 다르게 제공 / 지원한다.
  3. 데이터 처리 작업의 효율성을 증가시키는 데 중요한 역할을 한다.
  4. 데이터와 연산을 추상화하여 사용자가 내부 동작을 몰라도 쉽게 사용할 수 있고, 코드의 가독성유지 보수성을 향상시킨다.

💡 선택 기준

대부분의 자료구조는 특정한 상황에 놓인 문제를 해결하는데 특화되어 있다.
성능, 메모리 사용량 및 코드의 가독성 등에 큰 영향을 미치기 때문에 적절한 자료구조를 선택하는 것이 중요하다.
따라서 현재 상황에 가장 적합한 자료구조를 빠르게 찾아 사용할 수 있어야 한다.
자료구조를 선택하는 기준은 다음과 같다.

  • 자료의 처리 시간 (시간 복잡도)
  • 자료의 크기 (공간 복잡도)
  • 자료의 활용 빈도
  • 자료의 갱신 정도
  • 프로그램의 용이성

💡 분류

자료구조는 크게 3가지로 구분할 수 있다.

  1. 자료간의 형태 / 모양에 따른 구분
    1) 선형 자료구조

    • 기본 선형 자료구조 : 자료의 삽입 / 삭제가 어느 위치에서나 이루어질 수 있다.
    • 제한 선형 자료구조 : 자료의 삽입 / 삭제가 정해진 위치에서만 이루어질 수 있다.

    2) 비선형 자료구조

  2. 자료간의 연속 / 연결 구조에 따른 구분

    • 배열에 기반한 연속 방식 구조
    • 포인터에 기반한 연결 방식 구조
  3. 기타

1. 선형 자료구조

선형 자료구조 (Linear Data Structure)는 데이터가 순차적으로 하나의 선처럼 나열된 형태의 자료구조를 의미한다.
데이터들이 물리적으로 연속 (물리적 연결)되어 있거나 각 요소가 다음 데이터 주소를 가지는 (논리적 연결) 형태로 연결된다.

선형 자료구조는 정적 자료구조동적 자료구조로 세부 분류가 가능하다.

정적 자료구조

프로그램 실행 중 크기가 고정되어 있는 자료구조이다.
미리 할당된 메모리 공간에 데이터를 저장하기 때문에 데이터 추가 / 삭제 / 크기 변경 등의 동작이 제한적이다.

동적 자료구조

프로그램 실행 중 크기를 동적으로 조정 가능한 자료구조이다.
필요에 따라 메모리에서 유연하게 공간을 할당 / 해제 가능하여 데이터의 추가 / 삭제 / 크기 변경 등의 동작이 가능하다.

종류

  1. 배열 (Array)
  2. 연결 리스트 (Linked List)
  3. 스택 (Stack)
  4. 큐 (Queue)

특징

  1. 구조가 간단하여 기억 장소 효율이 높다. (메모리 밀도가 높다.)
  2. 모든 원소들을 순회하기 쉽다.
  3. 순차 접근(Sequential Access)무작위 접근(Random Access)가 가능하다.

2. 비선형 자료구조

비선형 자료구조 (Non-Linear Data Structure)는 간단하게 선형 자료구조가 아닌 나머지 자료구조들을 의미한다.
자료들 간의 앞뒤 관계가 일대다 혹은 다대다 관계이다.

종류

  1. 해시 테이블 (Hash Table)
  2. 그래프 (Graph)
  3. 트리 (Tree)
  4. 힙 (Heap)

특징

  1. 계층적 구조를 나타내기에 적절하다.
  2. 데이터가 복잡한 관계를 형성하며 연결된다.
  3. 다대다 관계가 가능하다.

Reference

자료구조 - 위키백과
정보통신기술용어해설 - 자료구조 종류
좌충우돌, 파이썬으로 자료구조 구현하기 - 00장 자료 구조(Data Structure)란?
자료구조 와 알고리즘
자료구조(Data Structure) 개념 및 종류 정리
자료구조와 알고리즘의 개념
[Data Structure] 자료구조(Data Structure)란? (선형&비선형 자료구조)
[Data Structure] 선형(Linear) & 비선형(NonLinear) 자료구조
자료구조란 무엇이고 선형/비선형 자료구조란?

profile
학습 내용 정리 순차적 갱신 / 정리 중

0개의 댓글