請看看下面的代碼瞭解堆棧數據結構和實現它
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;
};
在上面的代碼中,註釋行說,「從棧中刪除項目」。但實際上,這並不是消除,它只是提供了一個值的背後,對吧?在這裏,我指的是刪除從堆棧中徹底摧毀特定值。
ex:在包含數據1,2,3,4的數組中,刪除'2'。所以現在它是1,3,4
其次,在「peek()」方法裏面會發生什麼?
三,有沒有我沒有發現的錯誤?
請幫忙!
太好了。感謝您的幫助 :) –