关注
template <typename T, int MAX_SIZE>
class Stack
{
public:
Stack() :elems(NULL)
, top(0)
, capacity(0)
{}
~Stack()
{
delete[] elems;
elems = NULL;
}
void Push(const T &elem) //压入元素
{
//int size = sizeof(elems);
checkCapacity();
if (top <= MAX_SIZE)
{
elems[top] = elem;
top++;
}
else
{
printf("栈已满,无法添加数据\n");
}
}
void Pop() //弹出元素
{
top = top - 1;
if (top == -1)
{
printf("栈已空,没有数据可删除\n");
}
}
T &Top() //取栈顶
{
return elems[top];
}
const T &Top() const
{
return elems[top];
}
bool Empty() const
{
return top == 0;
}
void checkCapacity()
{
if (top >= capacity)
{
capacity = capacity > 0 ? capacity * 2 : 3;
T* tmp = new T[capacity];
for (int i = 0; i < top; i++)
{
tmp[i] = elems[i];
}
delete[] elems;
elems = tmp;
}
}
private:
T *elems; //使用数组的方式存储
int top;
int capacity;
};
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 从顶到拉给所有面过的公司评分 #
9220次浏览 96人参与
# 晒晒你的中秋福利 #
14520次浏览 87人参与
# 为了求职,我做过的疯狂伪装 #
9785次浏览 145人参与
# 机械人春招想让哪家公司来捞你? #
356629次浏览 3102人参与
# 职场破冰,你们都聊什么? #
5285次浏览 56人参与
# 工作压力大怎么缓解 #
104511次浏览 1047人参与
# 机械人怎么评价今年的华为 #
208349次浏览 1524人参与
# 广联达求职进展汇总 #
10462次浏览 50人参与
# 你面试被问到过哪些不会的问题? #
17292次浏览 680人参与
# bilibili求职进展汇总 #
82825次浏览 764人参与
# 聊聊这家公司值得去吗 #
551221次浏览 3673人参与
# 实习要如何选择和准备? #
114277次浏览 1436人参与
# 秋招报数:你投了多少家公司? #
24809次浏览 248人参与
# 电网笔面经互助 #
46214次浏览 428人参与
# 你觉得早上几点上班合适? #
82111次浏览 329人参与
# 秋招的嫡长offer #
23110次浏览 207人参与
# 上班摸鱼,你都在干些什么? #
5636次浏览 93人参与
# 机械笔面试考察这些知识点 #
10174次浏览 89人参与
# 浪潮求职进展汇总 #
16316次浏览 131人参与
# 上班后和你想的一样吗? #
78941次浏览 629人参与