자바 바 텀 은 이 진 검색 트 리 를 기반 으로 집합 과 맵/집합 세트 기능 에 대한 상세 한 설명 을 실현 합 니 다.

본 논문 의 사례 는 자바 바 텀 이 이 진 트 리 를 바탕 으로 집합 과 매 핑 기능 을 실현 하 는 것 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
앞에서 말 했 듯 이 5 장의 시리즈 학습 에서 이 진 트 리 에 관 한 조작 을 실 현 했 으 니 5 장 을 자세히 보면 된다.이 절 에서 밑바닥 을 배 우 는 데 중심 을 두 는 것 은 우리 가 이미 봉 인 된 이 진 트 리 관련 조작 으로 기본 적 인 집합set이라는 데이터 구 조 를 실현 하 는 것 이다.
집합set의 특성:
집합Set에 저 장 된 요 소 는 무질서 하고 중복 할 수 없다.이런 특성 을 달성 하기 위해 서 는 지탱 할 수 있 는 바 텀 데이터 구 조 를 찾 아야 한다.
이전에 실 현 된 이 진 트 리 를 선택 하 십시오.이 이 진 트 리 는 중복 요 소 를 넣 을 수 없 기 때 문 입 니 다.따라서 우 리 는 이 진 트 리 라 는 밑바닥 을 수색 하여 집합set을 실현 할 수 있다.
1.집합set관련 기능

1.1 add()방법 특성
2 분 검색 트 리 추가 작업 add:중복 요 소 를 넣 을 수 없습니다.
2.set 응용
전형 적 인 응용:1.고객 통계 2.어 휘 량 통계
3.집합 실현
3.1 인터페이스 정의 설정

/**
 *      
 */
public interface Set<E> {
  void add(E e);//   <――<        
  void remove(E e);//  
  int getSize();//    
  boolean isEmpty();//    
  boolean contains(E e);//      
  
}
3.2 2 분 검색 트 리 기반 집합Set

//  BST          Set
public class BSTSet<E extends Comparable<E>> implements Set<E> {//  E        
 
  //  BST    
  private BST<E> bst;
 
  //    
  public BSTSet() {
    bst = new BST<>();
  }
 
  //      
  @Override
  public int getSize() {
    return bst.size();
  }
 
  //        
  @Override
  public boolean isEmpty() {
    return bst.isEmpty();
  }
 
  //Set    
  @Override
  public void add(E e) {
    bst.add(e);
  }
 
  //      
  @Override
  public boolean contains(E e) {
    return bst.contains(e);
  }
 
  //    
  @Override
  public void remove(E e) {
    bst.remove(e);
  }
}
3.3 테스트:두 명작 의 어 휘 량 과 중복 되 지 않 는 어 휘 량

public static void main(String[] args) {
 
    System.out.println("Pride and Prejudice");
    //    ArrayList    
    ArrayList<String> words1=new ArrayList<>();
    //               word1 
    FileOperation.readFile("pride-and-prejudice.txt",words1);
    System.out.println("Total words : "+words1.size());
 
    BSTSet<String> set1=new BSTSet<>();
    //  for  ,      word   words
    //      ArrayList words1           word
    for(String word:words1)
      set1.add(word);//       
    System.out.println("Total different words : "+set1.getSize());
 
    System.out.println("-------------------");
    System.out.println("Pride and Prejudice");
    //    ArrayList    
    ArrayList<String> words2=new ArrayList<>();
    //               word1 
    FileOperation.readFile("a-tale-of-two-cities.txt",words2);
    System.out.println("Total words : "+words2.size());
 
    BSTSet<String> set2=new BSTSet<>();
    //  for  ,      word   words
    //      ArrayList words1           word
    for(String word:words2)
      set2.add(word);//       
    System.out.println("Total different words : "+set2.getSize());
  }
결과:

여기 서 설명 할 필요 가 있 는 것 은 우리 가 통계 한 단어 수 는 각 단어 로 구 성 된 것 만 고려 하고 단어의 특수 한 형식 을 구분 하지 않 았 다 는 것 이다.
다음 소절 에서 계속 공부 합 니 다.
원본 주소 https://github.com/FelixBin/dataStructure/tree/master/src/SetPart
자바 알고리즘 과 관련 된 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.자바 데이터 구조 및 알고리즘 튜 토리 얼,자바 조작 DOM 노드 기술 총화,자바 파일 과 디 렉 터 리 작업 기법 집합자바 캐 시 작업 기법 집합
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기