2017-03-20 11 views
0

私は初心者ですので、要素をstackscrollに挿入する際に助けが必要です。私は2つのスタックを持っています、1つはLeftで、もう1つはスタックです。左のスタックから右のスタックに要素を追加/削除する必要があります(実際には削除されません)。しかしながら;私はプッシュ/ポップの方法しか使用できません。私がjavaで作業してから数年経っています。以下は、私のコードです:java.util.Iteratorメソッドの挿入と削除

public class Scroll<E> extends AbstractScroll<E> { 

    private Stack<E> left; 
    private Stack<E> right; 

    public Scroll(E element) throws IllegalArgumentException { 

    } 

    @Override 
    public void insert(E element) { 
     left.push(element); 
    } 

    @Override 
    public E delete() { 
     left.pop(); 
+1

コードが切り捨てられているようです。 – azurefrog

+1

要素を 'left'から' right'に移動するには、 'right.push(left.pop())'を実行します。 – Andreas

答えて

0

あなたの質問から、私はあなたのdeleteメソッドが持つべき行動を確認していません。しかし、次のように2つのスタックを実装することができます:

public class Scroll<E> { 
    private Stack<E> left = new Stack<E>(); 
    private Stack<E> right = new Stack<E>(); 


    // insert element to Scroll class 
    public void insert(E element) { 
     left.push(element); 
    } 
    // move element from left to right stack 
    public void moveRight(){ 
     right.push(left.pop()); 
    } 

    // move element from right back to left stack 
    public void moveLeft(){ 
     left.push(right.pop()); 
    } 
    // delete element from Scroll by deleting element from left stack and moving top element from right back to left 
    public E delete() { 
     E deletedItem = left.pop(); 
     if(!right.empty()) { 
      moveLeft(); 
     } 
     return deletedItem; 
    } 
} 
関連する問題