🔍 선형 구조(Linear Structure)에서 가산성과 동차성
선형 구조(Linear Structure) 는 데이터가 순서대로 배치되는 자료구조를 의미하며,
대표적인 예로 배열(Array), 연결 리스트(Linked List), 스택(Stack), 큐(Queue), 덱(Deque) 등이 있습니다.
이러한 선형 구조에서 가산성과 동차성이 중요한 개념으로 사용될 수 있습니다.
✅ 1. 가산성 (Additivity)
📌 개념
- 가산성(Additivity) 은 부분 결과의 합이 전체 결과와 일치하는 성질을 의미합니다.
- 즉, 데이터를 여러 부분으로 나누어 연산을 수행한 후 합쳐도 결과가 동일해야 함.
📌 예제: 리스트의 합 (가산성)
int[] arr = {1, 2, 3, 4, 5};
// 전체 합
int totalSum = 1 + 2 + 3 + 4 + 5;
// 부분합 후 합치기
int part1 = 1 + 2;
int part2 = 3 + 4 + 5;
int sumWithParts = part1 + part2;
System.out.println(totalSum == sumWithParts); // true (가산성 만족)
✔ 배열의 부분합을 구한 후 합쳐도 전체 합과 동일 → 가산성 만족
📌 가산성이 적용되는 자료구조 예시
- 배열(Array), 연결 리스트(Linked List): 부분 리스트들의 합이 전체 리스트의 합과 동일함.
- 스택(Stack), 큐(Queue): 부분적으로 데이터를 꺼내서 연산 후 합쳐도 전체 연산 결과와 동일.
✅ 2. 동차성 (Homogeneity)
📌 개념
- 동차성(Homogeneity) 은 선형 구조에서 모든 원소가 같은 자료형(데이터 타입)을 가져야 하는 성질을 의미합니다.
- 즉, 리스트에 숫자만 포함되어 있으면 모든 요소가 숫자여야 하고, 문자열이면 문자열만 있어야 함.
📌 예제: 리스트의 동차성
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
// 모든 요소가 정수(Integer) → 동차성 만족
for (int num : numbers) {
System.out.println(num);
}
✔ 리스트의 모든 요소가 Integer 타입 → 동차성 만족
📌 동차성이 중요한 이유
- 연산의 일관성 유지: 자료형이 다르면 연산 시 오류가 발생할 수 있음.
- 메모리 관리 효율성: 같은 자료형이면 메모리 할당이 효율적으로 이루어짐.
📌 동차성이 적용되는 자료구조 예시
- 배열(Array): 같은 타입의 데이터만 저장 가능 (예: int[], String[]).
- 제네릭 컬렉션(List, Set, Queue 등): 타입 안전성을 유지하기 위해 같은 타입만 저장 가능.
✅ 3. 결론
개념 | 정의 | 예제 |
가산성 (Additivity) | 부분 연산의 결과를 합쳐도 전체 연산 결과와 동일 | 배열의 부분합을 구한 후 합쳐도 전체 합과 동일 |
동차성 (Homogeneity) | 모든 요소가 같은 자료형을 가져야 함 | List<Integer>에 모든 요소가 Integer 타입 |
📌 즉, 선형 자료구조에서 "가산성"은 연산 결과의 일관성을 보장하고, "동차성"은 데이터 타입의 일관성을 유지하는 역할을 합니다! 🚀
반응형
'컴퓨터 과학 > 🔢 자료구조' 카테고리의 다른 글
스택 (1) | 2025.01.30 |
---|---|
백트래킹(Backtracking) (0) | 2025.01.12 |
트리 | 이진 트리 탐색하기 (1) | 2024.11.24 |
트리 | 균형 이진 탐색 트리 (0) | 2024.11.24 |
트리 | 이진트리 (0) | 2024.11.24 |