堆栈练习
2015-12-20 20:38
483 查看
1、Vector实现
#ifndef STACK #define STACK #include <vector> template<class T, int capacity = 30> class Stack{ public: Stack(){ pool.reserve(capacity); } //清空 void clear(){ pool.clear(); } //判断堆栈是否为空 bool isEmpty() const{ return pool.empty(); } //获取顶部元素,但是不修改 T& topE1(){ return pool.back(); } //弹出栈顶元素 T pop(){ T el = pool.back(); pool.pop_back(); return el; } //将el元素放入栈顶 void push(const T& el){ pool.push_back(el); } private: std::vector<T> pool; }; #endif
2、链表实现
#ifndef LL_STACK #define LL_STACK #include <list> using namespace std; template <class T> class LLStack{ public: LLStack(){ } void clear(){ lst.clear(); } bool isEmpty() const{ return lst.empty(); } T& topEl(){ return lst.back(); } T top(){ T el = lst.back(); lst.pop_back(); return el; } void push(const T& el){ lst.push_back(el); } private: list<T> lst; }; #endif
相关文章推荐
- 解决ScrollView嵌套ListView显示不完全和滑动冲突的问题
- 静态网站及其生成、托管会成为一种流行趋势吗?
- 我的软工实践总结
- 【万字总结】图解堆算法、链表、栈与队列(多图预警)
- .Net学习(三):初识ASP.Net
- 【蓝桥第三周】汉诺塔
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- C++学习笔记37——析构函数
- Java数据结构系列之——栈(2):栈的链式存储结构及其操作
- XML 命名空间
- 四、将数据库表导入到solr索引
- C# 实现可克隆(ICloneable)的类型
- Direct2D 第1篇 最简单的D2D程序
- [转]移动前端开发之viewport的深入理解
- Centos7 x64 javaWeb环境搭建
- 软工实践总结——未来攻城狮的成长
- HTML5 Audio/Video 标签,属性,方法,事件汇总
- 第十五周-----------------博客汇总
- Mex的结构
- JAVA File的创建及相对路径绝对路径