关注
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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
27届学院本誓死冲击...:下次再发把个人信息隐藏掉,以防有心之人。相关课程删了,荣誉奖项只留蓝桥杯,把蓝桥杯写到教育经历里,按教育经历、实习经历、项目经历、专业技能这个顺序排版 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的付费上班经历 #
2941次浏览 63人参与
# 如果不上班,你会去做什么 #
1202次浏览 48人参与
# MiniMax求职进展汇总 #
1188次浏览 25人参与
# 参加哪些竞赛对找工作有帮助? #
1678次浏览 31人参与
# 工作压力大,你会干什么? #
1411次浏览 43人参与
# 为了入行xx岗,我学了__ #
1022次浏览 17人参与
# 职场新人体验 #
160047次浏览 1142人参与
# 你们的毕业论文什么进度了 #
1235180次浏览 9913人参与
# 拿到offer之后,可以做些什么 #
84227次浏览 438人参与
# 硬件/芯片公司工作体验 #
142363次浏览 946人参与
# 你觉得面试是靠实力还是靠运气 #
27329次浏览 306人参与
# 当你面对裁员会如何? #
353099次浏览 2857人参与
# 生物制药/化工校招攻略 #
72991次浏览 338人参与
# 牛客十周岁生日快乐 #
204019次浏览 1914人参与
# 哪些公司在招寒假实习? #
25217次浏览 349人参与
# 这些公司卡简历很严格 #
84260次浏览 379人参与
# 聊聊你的职场新体验 #
311321次浏览 1842人参与
# 硬件人秋招进展 #
265350次浏览 3968人参与
# 招聘要求与实际实习内容不符怎么办 #
150493次浏览 891人参与
# 秋招开了,你想投哪些公司呢 #
968450次浏览 11391人参与
# 快手工作体验 #
296794次浏览 2896人参与