【C++数据结构学习笔记---栈】用数组实现栈
2013-03-18 09:00
483 查看
【C++数据结构学习笔记---栈】用数组实现栈
一个简单的实现例子,初始化26个英文字母。
一个简单的实现例子,初始化26个英文字母。
#include <iostream> using namespace std; template <typename T> class Stack{ public: Stack(int max=100); //构造函数 ~Stack() {delete[] stk;} //析构函数 bool empty()const {return stk_top==-1;} //判断栈是否为空 bool full()const {stk_top==max_top;} //判断是否栈满 bool size()const {return stk_top+1;} //返回栈的长度 T top()const; //返回栈顶元素 Stack<T>& push(const T& x); //将元素x入栈 Stack<T>& pop(T& x); //将元素x出栈 private: int stk_top; int max_top; T *stk; }; template <typename T> Stack<T>::Stack(int max) { max_top=max-1; stk=new T[max]; stk_top=-1; } template <typename T> T Stack<T>::top()const { if (!empty()) return stk[stk_top]; } template <typename T> Stack<T>& Stack<T>::push(const T& x) { stk[++stk_top]=x; return *this; } template <typename T> Stack<T>& Stack<T>::pop(T& x) { x=stk[stk_top--]; return *this; } int main() { int s1,s2; s1='A'; s2='Z'; Stack<char> stack; for(int i=s2;i>=s1;--i){ stack.push(i); } char x; while(!stack.empty()){ stack.pop(x); cout <<x <<" "; } return 0; }
相关文章推荐
- 【C++数据结构学习笔记---线性表】用数组实现线性表
- 【C++数据结构学习笔记---线性表】用单链表实现线性表
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 习题2.8 随机数组的三种生成算法(补) 将bash的实现翻译成比较纯正的bash风格
- c++ 模板学习笔记:函数模板实现数组通用排序和遍历打印(权哥)
- 【C++数据结构学习笔记---栈】用链表实现栈
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(7)习题2.8 随机数组的三种生成算法
- 学习数据结构笔记--顺序表的数组实现
- C++学习笔记三:字符串、向量和数组
- C++学习笔记之八 复合类型---指针、数组和指针运算
- 【学习笔记四】- 用js实现的一些数组操作和算法
- C++学习笔记(四)——数组和指针
- 学习笔记之cocos2d-x2.1.1实现读取.plist文件(使用数组CCArray)
- C++数组初始化规则的学习笔记
- C/C++学习笔记-数组和指针
- 数据结构学习第一篇--C++实现单链表模板
- C++学习笔记六之函数如何使用指针来处理数组?
- [学习笔记]C和C++中数组的一些小心得(一)
- c++ 模板学习笔记:用数组和类模板模拟通用栈(权哥)
- 数据结构学习笔记-平衡二叉树实现
- C++学习笔记-数组