Page 283 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 283
32 break;
33 if(j == s2->num)
34 return 0;
35 }
36 return 1;
37 }
38
39 /*--- 집합 s2와 s3의 합집합을 s1에 대입 ---*/
40 IntSet *Union (IntSet *s1, const IntSet *s2, const IntSet *s3)
41 {
42 int i;
43 Assign(s1, s2);
44 for(i = 0; i < s3->num; i++)
45 Add(s1, s3->set[i]);
46 return s1;
47 }
48 (실습 7-2[C]에서 계속)
집합의 크기를 조사하는 Capacity 함수
Capacity 함수는 집합의 최대 원소의 개수를 반환하는 함수로, 멤버 max 값을 반환합니다.
집합의 원소 개수를 조사하는 Size 함수
Size 함수는 집합의 원소 개수를 반환하는 함수로, 멤버 num 값을 반환합니다.
집합을 복사하는 Assign 함수
Assign 함수는 한 집합을 다른 집합으로 복사하는 함수입니다. 복사 원본은 s2가 가리키는 집
합이고 복사할 대상은 s1이 가리키는 집합입니다.
집합 s2를 s1으로 복사합니다. 0 1 2 3 4 5 6 ❼ 8 9
Assign(&s1, &s2); s2 52 63 14 22 93 64 25 - - -
s1 52 63 14 22 93 64 25 - - -
0 1 2 3 4 5 6 ❼ 8 9
[그림 7-10] 집합을 복사하는 Assign 함수
복사 원본(s2)의 원소 개수(s2->num)가 복사할 대상의 집합 크기(s1->max)보다 큰 경우에는
복사할 대상의 집합 크기( s1->max)에 대한 원소만큼만 복사합니다. 실제로 복사할 원소의 개
07•집합 283