c++菜鸟,关于类模板的问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 19:05:23
这是我们一到作业
根据整数栈的定义,可抽象出的栈类模板为:
template<class T>
class Stack{
public:
Stack();
~Stack();
void Push(T& n);
T Pop();
private:
static const int SIZE;
T* stack;
int tos;
};
这里需要将该模板中的各成员函数进行定义即可。tos是栈顶位置,Push()为压栈操作,Pop()为弹栈操作,要在这两个操作中分别考虑栈的长度和栈是否为空。最后,要在main函数中对编写的栈类模板进行测试。
这是我的代码
#include<iostream.h>
template <class T>

class Stack
{
public:
Stack();
void Push(T);
T Pop();
~Stack();
private:
struct Data
{
T tos;
Data *next;
};
Data *front;
};

template <class T>
Stack<T>::Stack()
{ front=Null; }

template <class T>
void Stack<T>::Push(T &n)

写得还不错,但类的接口太简单,给你加几个接口,修改一下定义,来个完整的 template Stack,如果你坚持只使用两个接口,可接着自己改,我就不帮忙了 ^_^

template <class T>

class Stack
{
public:
Stack();
void Push(T const&);
void Pop();
T Top() const;

bool Empty() const {
return (front == NULL);
}
~Stack();
private:
struct Data
{
T tos;
Data *next;
};
Data *front;
};

template <class T>
Stack<T>::Stack()
{ front=NULL; }

template <class T>
void Stack<T>::Push(T const& elem)
{
Data *Temp;
Temp=new Data;
Temp->tos=elem;

Temp->next=front;
front = Temp;
}

template <class T>
void Stack<