次のコードを見てください
template <typename T>
class Stack
{
public:
Stack(int number)
{
maxSize = number;
top = -1;
stackData = new T*(maxSize);
}
~Stack()
{
delete [] stackData;
}
int count()
{
}
bool isEmpty()
{
if(top==-1)
{
return true;
}
else
{
return false;
}
}
bool isFull()
{
if(top== (maxSize-1))
{
return true;
}
else
{
return false;
}
}
*T pop()
{
if(!isEmpty())
{
return stackData[top--]; // Remove Item From Stack
}
}
*T peek();
void push(T *pushValue)
{
if(!isFull())
{
stackData[++top] = pushValue;
}
}
private:
int maxSize;
T ** stackData;
int top;
};
上記のコードでは、コメント行に「Removing Item from the Stack」と書かれています。でも実際は外すのではなく、1つ後ろの価値を提供しているだけですよね?ここでは、スタックから特定の値を完全に削除することを削除と呼びます。
例: データ 1,2,3,4 を含む配列で、「2」を削除します。だから今は1,3,4です
第二に、「peek()」メソッド内で何が起こるべきでしょうか?
第三に、私が検出しなかったエラーはありますか?
助けてください!