2012-05-13 2 views
-1

나는 다음과 같은 사전 인터페이스를 제공하고 있습니다 위의 사전 인터페이스를 구현하는 이론적 개념사전 인터페이스에 대한 이진 검색 트리를 구현하는 방법은 무엇입니까?</p> 이제 <pre><code>public interface Dictionary<E extends Comparable<E>> extends Iterable<E> { </code></pre> <p>내가 이진 검색 트리를 사용하여이 인터페이스를 구현하도록 요청, 그러나 나는 꽤 혼란 스러워요부터 시작하는 방법을 모르는 해요 :

이 내 구현 클래스는 다음과 같습니다

그래서
// Red-black binary search tree 
public class DictionaryImp implements Dictionary<DictionaryImp>, Comparable<DictionaryImp> { 

, 어떻게이 다음과 같은 방법을 구현할 수 있을까? 어떤 인스턴스 변수가 DictionaryImp 클래스에 의해 운반 될 것인가?

public boolean isEmpty(); 
public boolean contains(E item); 
public boolean hasPredecessor(E item); 
// etc. 

답변

0

레드 - 블랙 트리의 구현을 알지 못하지만, 기본적으로 언급 한 모든 메소드는 해당하는 레드 - 블랙 트리 메소드를 호출합니다.

IsEmpty 함수는 : 나무가

이 (E 항목)를 포함 비어 있는지 여부를 확인 : 요소를 찾기 위해 나무에 이진 검색을 수행합니다. 찾을 수있는 경우 true를 반환합니다.

add (E 항목) : if (! contains (item)) tree.add (item);

등.

0

클래스 선언은 의미가 없습니다. Dictionary의 type 매개 변수는 사전의 요소 유형에 대한 것 같습니다. 그렇기 때문에 요소가 자신과 비교할 수 있어야했습니다. 당신의 선언은 DictionaryImp이 또한 요소가 DictionaryImp 인 사전이라고 말하는 것으로 이해가되지 않습니다. 당신이 원하는 요소는 DictionaryImp이며 그 요소 유형은 그 자체와 비슷하며 다음과 같이 동일한 유형 매개 변수를 가진 사전을 구현합니다.

관련 문제