알고리즘 자료구조 - 8

2021. 8. 18. 22:59

7장

1)
집합(set)
 - 명확한 조건을 만족하는 자료의 모임
 - 객관적으로 범위를 규정한 어떠한 자료의 모임
 - 각 자료를 원소(element)라 한다


2)
부분집합: A 집합의 모든 원소가 B 집합의 원소에 포함될 경우, A는 B의 부분집합(subset)이다
진부분집합: A 집합의 모든 원소가 B 집합의 원소에 포함되고 A 집합과 B 집합이 같지 않을 경우, A는 B의 진부분집합(proper subset)이다

집합의 연산
 - 합집합: A 집합과 B 집합의 모든 원소를 합친 집합
 - 교집합: A 집합과 B 집합 양쪽 모두 속하는 원소의 집합
 - 차집합: A-B일 경우, A 집합의 원소 중 B 집합과 겹치는 원소를 제외한 집합

 

 

3)
배열로 집합 만들기
 - 배열을 사용하여 집합을 표현하려면 집합의 원소개수와 배열의 요소개수가 같아야한다
 
 - 배열에 대한 정보를 가지고 있는 구조체를 구성한다
    : 집합의 최대크기(==배열의 크기), 집합의 원소개수(==현재 배열의 저장된 요소 수), 배열을 가리키는 포인터
 - 함수
    : init, check, add, remove, size, assign, equal, union(합집합), intersection(교집합), difference(차집합), terminate

 

 

4)
비트 벡터로 집합 만들기
 - 비트 벡터(bit vector): 비트를 사용하여 정수 집합을 구성한 집합(즉 각 정수 원소를 하나의 비트로 표현한 집합)
 - 전체집합(universal set): 대상이 되는 모든 원소를 포함한 집합. 즉, unsigned 32비트 크기를 가지는 집합일 경우 전체집합은 0~31을 가진다

 - 함수: add, remove, size, union(합집합, |), intersection(교집합, &), difference(차집합, & ~)
   ** 함수를 구할시, bit set, bit clear를 사용하여 구현한다
   ** 비트 벡터는 정수값을 가지기 때문에 집합이 같은지 확인하는 방법은 등가연산자(==, !=)를 사용해도 된다

'Study > 알고리즘_자료구조' 카테고리의 다른 글

알고리즘 자료구조 - 10  (0) 2021.08.23
알고리즘 자료구조 - 9  (0) 2021.08.19
알고리즘 자료구조 - 7  (0) 2021.08.16
알고리즘 자료구조 - 6  (0) 2021.08.16
알고리즘 자료구조 - 5  (0) 2021.08.06

+ Recent posts