个人学习记录<2>stack类
2018-03-01 15:25
295 查看
栈(stack):顺序存储结构,最大特点是先进后出(FILO)
栈分类:
1.数组栈(静态栈)
2.链表栈(栈元素是节点)
栈用处:
1.表达式解析 :3*2+5*4
2.递归实现
栈分类:
1.数组栈(静态栈)
2.链表栈(栈元素是节点)
栈用处:
1.表达式解析 :3*2+5*4
2.递归实现
#include <iostream> using namespace std; template<class T> class Stack; //栈节点类 template<class T> class Snode { friend class Stack<T>; public: Snode(T _date) { date=_date; next=NULL; } private: T date; Snode * next; }; //栈类 template<class T> class Stack { public: Stack() { Max=10; count=0; top=NULL; } bool Is_empty() { if(NULL==top) { return true; } return false; } bool Is_full() { if(count==Max) { return true; } return false; } void Push(T _value) { if(!Is_full()) { Snode<T> * Newnode=new Snode<T>(_value); Newnode->next=top; top=Newnode; Newnode=NULL; count++; } else { cout<<"stack is full..."<<endl; } } void Pop() { if(!Is_empty()) { Snode<T> * p_st_node=top; top=top->next; cout<<"pop:"<<p_st_node->date<<endl; delete(p_st_node); p_st_node=NULL; count--; } else { cout<<"stack is empty"<<endl; } } private: int Max; int count; Snode<T> * top; }; int main(void) { Stack<int> st; st.Push(1); st.Push(3); st.Push(2); st.Push(4); st.Pop(); st.Pop(); }
相关文章推荐
- [记录]学习<<QT学习之路2>>第二天
- [记录]学习<<QT学习之路2>>第五天
- 个人学习记录<1>链表类
- [记录]<<QT学习之路2>>学习第三天
- 个人学习书签记录笔记<一>
- Git学习记录<2>
- [记录]学习<<QT学习之路2>>第四天
- Vue 学习记录<2>
- HTML学习记录<五> :列表
- HTML学习记录<六> :表格
- 学习OpenCV 第二版<2-2>:First Program—Display a Picture
- Android Fragment 学习<2> 滑动TAb导航(ActionBar)
- <深度学习-实战2>Convolutional_Seq2Seq的环境搭建及训练
- c3p0的简单教程<个人学习笔记>
- 『算法学习笔记』11th day. 文件操作<2>
- 在别的地方看的<<给程序员介绍一些C++开源库>>,记录给大家共同学习
- cmake 学习之路 记录中间所遇到过的所有错误与问题的解决 <二>
- OpenCV 2 学习笔记(11): 算法的基本设计模式<2>:使用Controller
- 【Android】学习记录<1> -- 初识ffmpeg
- c++学习(函数模板, 类模板)<2>