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
   278   279   280   281   282   283   284   285   286   287   288