Page 282 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 282
IsMember(s, 22)로 먼저 조사합니다.
22를 삭제
0 1 2 ❸ 4 5 6 ❼ 8 9
Remove(&s, 22); 52 63 14 22 93 64 25 - - -
num을 1만큼 감소합니다
52 63 14 25 93 64 - - - -
0 1 2 ❸ 4 5 ❻ 7 8 9
[그림 7-9] 삭제
실습 7-2[B] •완성 파일 chap07/IntSet.c
01 /*--- 집합 s에 넣을 수 있는 최대의 원소 개수를 반환 ---*/
02 int Capacity (const IntSet *s)
03 {
04 return s->max;
05 }
06
07 /*--- 집합 s의 원소 개수를 반환 ---*/
08 int Size (const IntSet *s)
09 {
10 return s->num;
11 }
12
13 /*--- 집합 s2를 s1에 대입 ---*/
14 void Assign (IntSet *s1, const IntSet *s2)
15 {
16 int i;
17 int n =(s1->max < s2->num) ? s1->max : s2->num; /* 복사하는 원소의 개수 */
18 for(i = 0; i < n; i++)
19 s1->set[i] = s2->set[i];
20 s1->num = n;
21 }
22
23 /*--- 집합 s1과 s2가 같은지 확인 ---*/
24 int Equal (const IntSet *s1, const IntSet *s2)
25 {
26 int i, j;
27 if(Size(s1) != Size(s2))
28 return 0;
29 for(i = 0; i < s1->num; i++) {
30 for(j = 0; j < s2->num; j++)
31 if(s1->set[i] == s2->set[j])
282 C 알고리즘