MOONSUN
[자료구조] 자료형과 자료구조 본문
자료구조에 대해 공부하기 전에
자료형과 자료구조의 개념, 그리고 연관성에 대해 간단하게 정리해보고자 한다. ( C/C++을 기준으로 작성했습니다. )
1. 자료형 (data type)
자료형은 데이터를 표현하고 처리하는 방식을 정의한다.
- 기초 자료형 (Primitive / Basic Data Types)
- 언어 자체에서 기본으로 제공하는 가장 단순한 자료형
- char, int, long, float
- 파생 자료형 (Derived Data Types)
- 기초 자료형을 기반으로 만들어진 자료형
- 배열 , 포인터
- 사용자 정의 자료형 (User-defined Data Types)
- 프로그래머가 정의한 자료형
- 구조체(struct), 공용체(union), 열거형(enum)
- 추상 자료형 (Abstract Data Type, ADT)
- 자료형의 논리적 모델을 정의하는 것.
- 데이터 집합과 그 데이터를 다루는 연산(operations, interface) 만 명세
- 구현은 포함 X -> " 무엇을 할 수 있는가"만 정의
- 스택(Stack), 큐(Queue), 리스트(List)
ADT는 개념, 자료구조는 실제 구현
2. 자료구조 (Data Structure)
자료구조는 추상 자료형(ADT) 를 실제로 구현한 것.
- 추상 자료형에서 정의한 명세를, 실제 메모리에 데이터를 저장하고 연산을 수행할 수 있도록 구현한 방식
예시:
| ADT | 자료구조 구현 예시 |
| 스택(Stack) | 배열 기반, 연결 리스트 기반 |
| 큐(Queue) | 배열, 연결 리스트, Ring Buffer |
| 리스트(List) | 배열 기반, 연결 리스트 기반 |
특징:
- 같은 ADT라도 구현 방식에 따라 성능(시간, 공간)과 특징이 달라짐
- 자료구조를 선택할 때는 사용 목적과 성능 요구사항을 고려해야 함
3. (정리) 자료형 ↔ 자료구조 연관성
- 자료형: 데이터와 연산의 개념적 정의
- ADT: 자료형의 논리적 모델 (무엇을 할 수 있는가)
- 자료구조: ADT를 실제 메모리와 연산으로 구현한 것 (어떻게 할 것인가)
즉, 자료형 → ADT → 자료구조 의 흐름을 가진다.
'CS' 카테고리의 다른 글
| [알고리즘] 단순 정렬(N²) : 버블(Bubble Sort), 선택(Selection Sort), 삽입(Insertion Sort) 과 안정/불안정 정렬 (0) | 2025.09.25 |
|---|---|
| [알고리즘] 슬라이딩 윈도우 & 단조 큐 : 구간을 효율적으로 관리 (0) | 2025.09.19 |
| [알고리즘] LUT & 투 포인터 : 중복 계산 줄이기 (0) | 2025.09.19 |
| [자료구조] 우선순위 큐(priority queue) 와 힙(Heap) (0) | 2025.09.12 |
| [자료구조] 스택(Stack)&큐(Queue) 와 컨테이너(Container) (0) | 2025.09.11 |