선형 구조 자료형(Linear Data Structures)에서는 데이터가 나열된 순서와 추가/삭제 방식에 따라 성질이 달라집니다.
이때 중요한 개념이 바로 가산성(Accretion)과 동차성(Order Sensitivity)입니다.
1️⃣ 가산성 (Accretion / Aggregation)
✔️ 정의
각 요소를 독립적으로 추가하거나 삭제할 수 있는 성질
즉, 하나의 원소를 추가하거나 제거해도 다른 원소에 영향을 주지 않는 구조를 의미합니다.
구성 요소들이 자유롭게 존재할 수 있는 구조라고 볼 수 있어요.
🧪 예시
- 리스트 (List)
- 중간에 데이터를 자유롭게 삽입하거나 삭제 가능
- 큐 (Queue)
- 앞뒤 요소가 서로 독립적으로 존재하며 삽입/삭제됨
2️⃣ 동차성 (Order Sensitivity / Homogeneity)
✔️ 정의
자료구조 내 요소의 순서가 중요한 성질
즉, 같은 데이터를 갖고 있어도 저장된 순서가 다르면 서로 다른 구조로 취급합니다.
🧪 예시
- 스택 (Stack)
- LIFO 구조 → 마지막에 들어간 데이터가 먼저 나옴
- 큐 (Queue)
- FIFO 구조 → 먼저 들어간 데이터가 먼저 나옴
🧠 예: [1, 2, 3]과 [3, 2, 1]은 동차성을 갖는 구조에서는 다르게 처리됩니다.
📌 예시 비교표
자료구조 가산성 동차성 설명
| List | ✅ | ✅ | 자유로운 삽입/삭제 가능 + 순서 중요 |
| Stack | ❌ | ✅ | 삽입/삭제 위치가 제한됨 + 순서 중요 |
| Queue | ❌ | ✅ | 선입선출 구조 + 순서 중요 |
| Set | ✅ | ❌ | 중복 제거, 순서 없음 |
| Map | ✅ | ❌ | 키로 데이터 식별, 순서 없음 (OrderedMap 제외) |
🎯 면접 답변 예시
“가산성은 각 요소를 독립적으로 추가/삭제할 수 있는 성질이고, 동차성은 요소 간의 순서가 중요한 성질입니다. 예를 들어 리스트는 가산성과 동차성을 모두 가지며, 스택과 큐는 순서에 민감한 구조로 동차성은 있지만 가산성은 없습니다.”
'Programming > 기술 면접' 카테고리의 다른 글
| ✅ 웹 서버 vs 웹 프레임워크 차이 (2) | 2025.07.30 |
|---|---|
| [개발자 기술 면접 대비] 📦 허프만 코딩(Huffman Coding)이란? (3) | 2025.07.25 |
| [개발자 기술 면접 대비] 🌳 검색 자료구조로서 해시 테이블과 이진 탐색 트리 비교 (1) | 2025.07.25 |
| [개발자 기술 면접 대비] 🧩 Hash 충돌 시 내부 데이터 탐색은 어떻게 이루어질까? (1) | 2025.07.25 |
| [개발자 기술 면접 대비] 🔄 I/O와 Non-blocking I/O의 차이 (2) | 2025.07.25 |