关注
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
相关推荐
2025-12-22 15:25
南京工业大学 运营 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 为了入行xx岗,我学了__ #
5079次浏览 97人参与
# 工作压力大,你会干什么? #
11845次浏览 276人参与
# 实习的你做了哪些离谱的工作 #
8032次浏览 110人参与
# 找实习记录 #
24553次浏览 416人参与
# 简历第一个项目做什么 #
6292次浏览 97人参与
# 如果不上班,你会去做什么 #
5820次浏览 235人参与
# AI让你的思考变深了还是变浅了? #
3943次浏览 112人参与
# 邪修省钱套路 #
6604次浏览 219人参与
# Prompt分享 #
1807次浏览 55人参与
# 被说“做题家”,你的反应是_____? #
1393次浏览 53人参与
# 你都见过什么样的草台班子? #
4240次浏览 46人参与
# 我的付费上班经历 #
12252次浏览 189人参与
# 机械人,秋招第一次笔试的企业是哪家? #
86095次浏览 621人参与
# 参加哪些竞赛对找工作有帮助? #
6884次浏览 123人参与
# 小厂实习有必要去吗 #
77969次浏览 368人参与
# 如果让你发明个APP,你会想做什么 #
1709次浏览 48人参与
# 转正答辩报告怎么写 #
50991次浏览 800人参与
# 查收我的offer竞争力报告 #
268514次浏览 1659人参与
# 听到哪句话代表面试稳了OR挂了? #
124697次浏览 559人参与
# 大家实习每天都在干啥 #
112438次浏览 606人参与
上海得物信息集团有限公司公司福利 1263人发布