关于数据结构栈的问题,急求大神回复,谢谢

本文深入探讨了栈数据结构的两种实现方式:一种是使用固定大小的数组,另一种是使用动态分配的内存。通过对比,读者可以理解不同实现的优缺点,并掌握如何在C++中正确地使用模板来实现泛型栈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

const int StackSize = 10;
class Stack
{
public:
Stack(){top = -1;}//构造函数,初始化一个空栈
~Stack(){}//析构函数为空
void Push(char x);//入栈操作,将元素x
//入栈
char Pop();//出栈操作,将栈顶元素弹出
char GetTop();//取栈顶元素(不删除)
char Empty();//判断栈是否为空
char Emp();//清空栈
protected:
char data[StackSize];//存放栈元素的数组
int top;//栈顶指针,为栈顶元素在数组中的下标
};

上面这个是我们学的数据结构,下面的代码是网上的代码,而且大家都这么写,我看不太懂,想请求帮助
template
class Stack
{
public:
Stack(int MaxStackSize=10);
~Stack(){delete []stack;}
bool IsEmpty()const {return top==-1;}
bool IsFull()const {return top==MaxTop;}
T Top()const;
Stack& Add(const T& x);
Stack& Delete(T& x);
int Length(){return top+1;}
void Output(ostream& out) const;
Stack& Divide(Stack& x);
Stack& Merge(Stack& x);
friend istream& operator>>(istream& in,Stack& x);
private:
int top;
int MaxTop;
T *stack;

};为什么要这么写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值