0
こんにちはみなさん、私に与えられたサポートに感謝します。ArrayBasedのスタック実装pop()s [top] = null、top-とs [ - top] = nullの間に違いはありますか?
私の質問は、実際には短く、具体的です。
Straight away ArrayStackの実装に関連して、操作pop()をアタッチします。
public E pop() throws EmptyStackException {
if (isEmpty()){
throw new EmptyStackException();
}
E temp = s[top];
s[--top] = null;
return temp;
}
スタック、この文でポップ操作減少トップのアレイベースの実装によると:私はこれは非常に混乱を見つけるしかし
s[--top] = null;
、なぜそれが、これは単純ではありません。
s[top] = null;
top--;
私は両方の操作が同じ仕事をすることを理解しています。しかし、私はそれがどのようにs[top--] = null
で行われるのか分かりません。 s[top] = null
と設定してから、top--;
に従ってください。これは1つのステップで行われますか?
ありがとうございました。参考のために
完全なクラス:
public class ArrayBasedStack {
protected E s[];
protected int top = -1;
public ArrayBasedStack(int cap){
s = (E[]) new Object[cap];
}
public int size(){
return top + 1;
}
public boolean isEmpty(){
if(top < 0){
return true;
}
return false;
}
public E top() throws EmptyStackException {
if (isEmpty()) {
throw new EmptyStackException("Stack is empty.");
}
return S[top];
}
public E pop() throws EmptyStackException {
if (isEmpty()){
throw new EmptyStackException();
}
E temp = s[top];
s[--top] = null;
return temp;
}
public void push(E element) throws FullStackException {
if (size() == capacity){
throw new FullStackException("Stack is full.");
}
S[++top] = element;
}
}
これは逆のために違いがありますが、それを分けることができます。 – harold
他の方法ではどういう意味ですか? javaがこの文をどのように見えるかを段階的に説明できますか?[ - top] = null; – Uhel
'--top'は' top'を減らし、新しい値を評価します。 'top - 'は 'top'を減らしますが、* old *値を評価します。 – harold