2011-12-03 2 views
-1

내 자신의 Stack 클래스를 만들었지 만 args 내에서 전달 된 인덱스를 기반으로 스택 요소를 반환하는 get 메소드를 구현해야한다. 나는 contains 메소드를 만들었고 get은 비슷한 방식으로 작동합니다.Stacking 구현하기

제 질문은 어떻게 get 메소드를 구현합니까? 나는 Stack이 표준 라이브러리의 Vector 클래스로부터 상속받는 get 메소드를 기본적으로 구현하려고한다. -http : //docs.oracle.com/javase/1.4.2/docs/api/java/util/Vector.html#get%28int%29

다음은 내 포함 방법입니다.

public boolean contains (T value){ 

    T t = top.item; 
    Object node = t; 
    while(node!=null) 
    { 
     if(node==value){ 
      return true; 
     } 
     else { 
      node=top.next; 
     } 
    } 
    return false; 
} 
+2

무엇이 문제입니까? –

+0

질문은 무엇이며 어떻게 작동합니까? – havexz

+0

인덱스 인수는 무엇을합니까? 스택에 깊이를 지정 하시겠습니까? 상단에서 셀 수 있습니까? 어느 쪽이든, 그건 특이한 Stack입니다. 일반적으로/pop/peek을 누르면됩니다. – Thilo

답변

1

클래식 스택은 해당 작업을 지원하지 않으며 실제로 벡터를 확장해서는 안됩니다. 이 지원

작업은 다음과 같습니다

push(item) 
pop(); 
peek(); 

그래서 당신은 당신이 당신의 스택에 당신을 허용 할 목록의 인스턴스를 사용하는 것입니다 백업 할 데이터 구조를 사용하려는 경우, 수행 할 작업 원래 Sun 팀이 한 일을 되돌아 봅니다. 당신은 당신이 배열의 각 값을 반복하고 그것에 비교를 동일 수행 할 필요가 후원으로 배열을 사용하려면 대신하는 경우

function contains(Item item) 
{ 
    return Stack.getList().contains(item) 
} 

.

function contains(Item item) 
{ 
    for(int i = 0; i < itemArray.length;i++) 
    { 
     if(itemArray[i] == item) 
     { 
      return true;  
     } 
    } 
     return false; 
}