关注
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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 春招什么时候投? #
11327次浏览 188人参与
# 牛友的春节生活 #
8689次浏览 172人参与
# 春节前,你还在投简历吗? #
15001次浏览 176人参与
# 从夯到拉,锐评职场mentor #
5682次浏览 86人参与
# 牛客AI体验站 #
15055次浏览 268人参与
# 备战春招/暑实,现在应该做什么? #
5696次浏览 170人参与
# 春节提前走,你用什么理由请假? #
11202次浏览 255人参与
# 实习到现在,你最困惑的一个问题 #
4962次浏览 140人参与
# 怎么给家人解释你的工作? #
51628次浏览 208人参与
# 工作后,你落下了哪些病根 #
32474次浏览 277人参与
# 面试经验谈 #
406613次浏览 7218人参与
# 没有家庭托举的我是怎么找工作的 #
35764次浏览 266人参与
# 机械制造秋招总结 #
103397次浏览 886人参与
# 上班摸鱼,你都在干些什么? #
39190次浏览 246人参与
# 今年秋招你收到了多少封邮件? #
37836次浏览 279人参与
# 距离春招还有一个月,你现在是什么开局? #
7608次浏览 121人参与
# xxx岗位的一天 #
44986次浏览 279人参与
# 暑期实习什么时候投? #
7760次浏览 180人参与
# 聊聊Agent开发 #
26638次浏览 621人参与
# 找工作,行业重要还是岗位重要? #
96559次浏览 1839人参与
OPPO公司福利 1202人发布