정수의 집합을 달성하기 위해, 교차로, 차분 연산

  문제 : 정수의 집합의 기본 동작을 달성하기 위해 프로그램을 작성
  요구는 : 정수의 집합 {2,4,1,3,5} 및 {2,5,10}과 이전의 출력 소자의 수를 입력하고, 이들은 교차점 차분 계산 설정된
   사적 데이터 구성원 LEN (길이 집합)과의 배열 (저장 요소들의 집합)과 같은 방법을 포함하여, 디자인 클래스 IntSet :
    공공 무효 인서트 (INT는 d) 상기 요소를 복제 컬렉션에 추가 된 요소를 추가 할 수없는
    공공 INT 길이는 () à는 집합의 원소의 개수를 반환
    공개 INT 길이 ()의 세트의 위치 I에 대한 요소를 돌려
    공공 무효 DISP ()의 출력 세트 (A)의 모든 요소의
    두 세트의 공공 IntSet 조합 (IntSet의 S2) à 구현 및 운영
    포스트 달성 동작 두 세트 공개 IntSet 교차점 (IntSet S2)
    공개 IntSet 차 (IntSet S2)는 두 세트의 차분 연산을 구현
    공공 IntSet copySet (IntSet S2) à 사본의 두 세트를 구현
 
자바 코드 :
공용 클래스 IntSet {
       개인 INT 렌; // 설정 길이
       개인 INT []의 // 어레이
       
       공공 IntSet () {
              = 0 등;
              S = 새로운 INT [100];
       }
       
       공공 무효 인서트 인서트 요소 (INT d) // 집합
       {
              대해 INT (I = 0; I <렌; 내가 ++) {
                     경우 (S [I] == d) {
                           반환;
                     }
              }
          S [S]는 D가 =;
          ++와 같은;
       }
       
       공공 INT 길이는 () 세트의 길이를 가져옵니다 //
       {
              렌을 반환;
       }
       
       공공의 getInt INT (INT I) {
              
              경우 (ⅰ> = 0 && 난 LEN을 <)
              {
                     창 S [I];
              } 다른 {
                     -1을 리턴;
              }
       }
       
       공공 무효 DISP () {
              대해 INT (I = 0; I <렌; 내가 ++)
              {
                     System.out.print ( "\의 t '+ S [I]);
              }
       }
       
       공공 IntSet 조합 (IntSet S2) // 并
       {
              동일한 INT;
              경우 (; 나는 this.len <; I = 0 int로 난 ++)
              {
                     동일한 = 0;
                     대 (INT의 J = 0; J <s2.len, J ++)
                     {
                           경우 (this.getInt (I) == s2.getInt (j))
                           {
                                  동일한 = 1;
                                  단절;
                           }
                           경우 (동일한 == 0)
                           {
                                  this.insert (s2.getInt (j));
                           }
                     }
              }
              이를 반환;
       }
       
       공공 IntSet 교차로 (IntSet의 S2) {// 交
              
              동일한 INT;
              경우 (; 나는 <this.len을, I = 0 int로 난 ++) {
                     동일한 = 0;
                     대 (INT의 J = 0; J <s2.len, J ++) {
                           경우 (this.s [I] == s2.getInt (j))
                           {
                                  동일한 = 1, 반복 요소를 찾는 // 동일한 = 1
                                  단절;
                           }
                     }
                           (같은 == 0) {// 중복 요소를 찾을 수없는, 삭제하는 경우
                                  대 (INT에 K = 1; K <this.len; ++ K)
                                  {
                                         this.s [K] = this.s [K + 1];
                                  }
                                  
                                  나는--;
                                  this.len--;
                                  
                           }
                     
              }
              이를 반환;
       }
       공공 IntSet 차이 (IntSet S2) {// 差
              
              동일한 INT;
              경우 (; 나는 <this.len을, I = 0 int로 난 ++) {
                     동일한 = 0;
                     대 (INT의 J = 0; J <s2.len, J ++) {
                           경우 (this.s [I] == s2.getInt (j))
                           {
                                  동일한 = 1, 반복 요소를 찾는 // 동일한 = 1
                                  단절;
                           }
                     }
                           (같은 == 1) {// 중복 요소를 발견하면, 삭제
                                  대 (INT에 K = 1; K <this.len; ++ K)
                                  {
                                         this.s [K] = this.s [K + 1];
                                  }
                                  
                                  나는--;
                                  this.len--;
                                  
                           }
                     
              }
              이를 반환;
       }
       
       공공 IntSet copySet (IntSet의 S2) {
              this.len = s2.len;
              대해 INT (I = 0; I는 <s2.len; 내가 ++) {
                     this.s [I] = s2.getInt (I);
              }
              이를 반환;
       }
}
 
테스트 코드 :
   공용 클래스 테스트 {
       공공 정적 무효 메인 (문자열 []에 args) {
              IntSet S1, S2;
              S1 = 새로운 IntSet ();
              S2 = 새로운 IntSet ();
              s1.insert (2);
              s1.insert (4);
              s1.insert (1);
              s1.insert (3);
              s1.insert (5);
              
              s1.disp ();
              
              s2.insert (2);
              s2.insert (5);
              s2.insert (10);
              
              에서 System.out.println ();
              s2.disp ();
              
// s1.union (S2);
//에서 System.out.println ();
// s1.disp ();
              
// s1.intersection (S2);
//에서 System.out.println ();
// s1.disp ();
              
// s1.difference (S2);
//에서 System.out.println ();
// s1.disp ();
              
// IntSet S6 = 새로운 IntSet ();
// s6.copySet (S2);
// s6.disp ();
              
              s2.difference (S1);
              에서 System.out.println ();
              s2.disp ();
       }
}
 

추천

출처www.cnblogs.com/lone5wolf/p/11111937.html