Page 300 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 300

18  }
                     19
                     20  int main (void)
                     21  {
                     22    BitSet s1 = BitSetNull;
                     23    BitSet s2 = BitSetNull;
                     24    while(1) {
                     25      int m, x, idx;
                     26
                     27      printf("s1 = "); PrintLn(s1);
                     28      printf("s2 = "); PrintLn(s2);
                     29      printf("(1)s1에 추가 (2)s1에서 삭제 (3)s1에서 검색 (4)s1←s2 (5)여러 연산\n"
                     30              "(6)s2에 추가 (7)s2에서 삭제 (8)s2에서 검색 (9)s2←s1 (0)종료 : ");
                     31      scanf("%d", &m);
                     32
                     33      if(m == 0) break;
                     34      switch(m) {
                     35        case 1: x = scan_data(ADD); Add(&s1, x); break;      /* 추가 */
                     36        case 2: x = scan_data(RMV); Remove(&s1, x);  break;  /* 삭제 */
                     37        case 3: x = scan_data(SCH); idx = IsMember(s1, x);   /* 검색 */
                     38          printf("s1에 들어 있%s.\n", idx != 0 ? "습니다" : "지 않습니다"); break;
                     39        case 4: s1 = s2; break;                         /* s2를 s1에 대입 */
                     40        case 5: printf("s1 == s2 = %s\n", s1 == s2 ? "true" : "false");
                     41          printf("s1 & s2 = "); PrintLn(s1 & s2);
                     42          printf("s1 | s2 = "); PrintLn(s1 | s2);
                     43          printf("s1 - s2 = "); PrintLn(s1 & ~s2);
                     44          break;
                     45        case 6: x = scan_data(ADD); Add(&s2, x); break;     /* 추가 */
                     46        case 7: x = scan_data(RMV); Remove(&s2, x); break;   /* 삭제 */
                     47        case 8: x = scan_data(SCH); idx = IsMember(s2, x);   /* 검색 */
                     48          printf("s2에 들어 있%s.\n", idx != 0 ? "습니다" : "지 않습니다"); break;
                     49        case 9: s2 = s1; break;                         /* s1을 s2에 대입 */
                     50      }
                     51    }
                     52
                     53    return 0;
                     54  }











                   300   C 알고리즘
   295   296   297   298   299   300   301   302   303   304   305