C++关于模版的问题
时间:2011-12-11
来源:互联网
下边这题怎么写啊,求大侠帮忙!!!
根据整数栈的定义,可抽象出的栈类模板为:
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函数中对编写的栈类模板进行测试。
根据整数栈的定义,可抽象出的栈类模板为:
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函数中对编写的栈类模板进行测试。
作者: q243021856 发布时间: 2011-12-11
类似代码很多的。。自己GOOGLE一下不就完了。。
我随便写了个链栈,最简化的,你可以参考下。
C/C++ code
我随便写了个链栈,最简化的,你可以参考下。
C/C++ code
template <typename T> class StackWithLi { private: struct StackNode { T data; StackNode *next; StackNode(const T &d , StackNode *const n): data(d) , next(n){} }; StackNode *top; public: StackWithLi() : top(0){} void push(const T &); T pop(); bool isEmpty(){ return top == nullptr ;} }; template <typename T> T StackWithLi<T>::pop() { if (isEmpty()) { cout<<"The stack is empty!"<<endl; exit(0); } else { StackNode *p = top; T temp = top->data; top = top->next; delete p; return temp; } } template <typename T> void StackWithLi<T>::push( const T &d ) { StackNode *node = new StackNode(d , top); top = node; }
作者: LinuxTiger 发布时间: 2011-12-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28