컴퓨터 과학/🔢 자료구조

선형 구조(Linear Structure)에서 가산성과 동차성

이재원 2025. 2. 4. 01:32

🔍 선형 구조(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 타입 → 동차성 만족

📌 동차성이 중요한 이유

  1. 연산의 일관성 유지: 자료형이 다르면 연산 시 오류가 발생할 수 있음.
  2. 메모리 관리 효율성: 같은 자료형이면 메모리 할당이 효율적으로 이루어짐.

📌 동차성이 적용되는 자료구조 예시

  • 배열(Array): 같은 타입의 데이터만 저장 가능 (예: int[], String[]).
  • 제네릭 컬렉션(List, Set, Queue 등): 타입 안전성을 유지하기 위해 같은 타입만 저장 가능.

3. 결론

개념 정의 예제
가산성 (Additivity) 부분 연산의 결과를 합쳐도 전체 연산 결과와 동일 배열의 부분합을 구한 후 합쳐도 전체 합과 동일
동차성 (Homogeneity) 모든 요소가 같은 자료형을 가져야 함 List<Integer>에 모든 요소가 Integer 타입

 

📌 즉, 선형 자료구조에서 "가산성"은 연산 결과의 일관성을 보장하고, "동차성"은 데이터 타입의 일관성을 유지하는 역할을 합니다! 🚀

반응형