📄 stack.h
字号:
#ifndef STACK_H
#define STACK_H
template <class T>
class StackNode
{
public:
T data;
StackNode *next;
};
template <class T>
class Stack
{
public:
Stack():top(0) {}
bool IsEmpty() const { return top==0;}
void Push(const T data);
bool Pop(T *data);
bool Peek(T *data) const;
private:
StackNode<T> *top;
};
template <class T>
void Stack<T>::Push(const T data)
{
StackNode<T> *node = new StackNode<T>();
node->data = data;
node->next = top;
top = node;
}
template <class T>
bool Stack<T>::Peek(T *data) const
{
if(IsEmpty()) return false;
*data = top->data;
return true;
}
template <class T>
bool Stack<T>::Pop(T *data)
{
if(IsEmpty()) return false;
*data = top->data;
StackNode<T> *node = top;
top = top->next;
delete(node);
return true;
}
#endif//STACK_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -