关注
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
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得面试是靠实力还是靠运气 #
26944次浏览 290人参与
# 哪些公司在招寒假实习? #
19897次浏览 257人参与
# MiniMax求职进展汇总 #
921次浏览 23人参与
# 秋招遇到的奇葩面试题 #
103080次浏览 421人参与
# 卷__卷不过你们,只能卷__了 #
13911次浏览 311人参与
# 互联网行业现在还值得去吗 #
49334次浏览 362人参与
# 26年哪些行业会变好/更差 #
21242次浏览 311人参与
# 写论文的崩溃时刻 #
7638次浏览 168人参与
# 秋招暂停,我将对以下公司做出处罚__ #
50194次浏览 200人参与
# 去年的flag与今年的小目标 #
11347次浏览 223人参与
# 通信硬件公司爆料 #
186667次浏览 548人参与
# 你不能接受的企业文化有哪些 #
14147次浏览 193人参与
# 有深度的简历长什么样? #
18176次浏览 368人参与
# 你都用AI做什么 #
7800次浏览 179人参与
# 入职第一天 #
11386次浏览 247人参与
# 关于春招你都做了哪些准备? #
122352次浏览 709人参与
# 国企vs私企,你更想去? #
306321次浏览 2494人参与
# 硬件/芯片公司工作体验 #
141981次浏览 940人参与
# 找工作中的小确幸 #
75647次浏览 439人参与
# 大家实习都在做什么? #
16678次浏览 224人参与
# 招聘要求与实际实习内容不符怎么办 #
149337次浏览 887人参与


查看9道真题和解析