请看下面的代码
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;
};
在上面的代码中,注释行说“从堆栈中删除项目”。但实际上,它不是删除,它只是提供一个值,它是一个值,对吧?在这里,我将删除称为从堆栈中完全破坏该特定值。
例如:在包含数据 1、2、3、4 的数组中,我删除了“2”。所以现在是 1,3,4
其次,“peek()”方法内部应该发生什么?
第三,有没有我没有发现的错误?
请帮忙!