数据结构C++栈
来源:互联网 发布:java uml建模工具 编辑:程序博客网 时间:2024/05/19 10:41
自己实现栈结构
#include<iostream>#include<assert.h>using namespace std;template<class T> class Stack;template<class T> class StackNode{ friend class Stack<T>;private: T data; StackNode<T> *link; StackNode(T d = 0,StackNode<T>* l=NULL):data(d),link(l){}};template<class T> class Stack{public: Stack():top(NULL){} ~Stack(); void Push(const T& item); T Pop(); T GetTop(); void MakeEmpty(); int IsEmpty()const { return top == NULL; }private: StackNode<T> *top;//栈顶指针};template<class T> Stack<T>::~Stack(){ StackNode<T> *p; while(top!=NULL){ p=top; top=top->link;//逐节点回收 delete p; }}template <class T> void Stack<T>::Push(const T& item){ top = new StackNode<T>(item,top); //新结点链入top之前,并成为新栈顶}template <class T> T Stack<T>::Pop(){ assert(!IsEmpty());//判断栈是否为空,若为空,程序中止执行 StackNode<T> *p = top; T retvalue = p->data; top = top->link; delete p; return retvalue;}template <class T> T Stack<T>::GetTop(){ assert(!IsEmpty()); return top->data;}int main(){ Stack<int> s; s.Push(2); s.Push(3); s.Push(4); for(int i=0;i<3;i++){ cout<<s.Pop()<<endl; } return 0;}
阅读全文
0 0
- C数据结构 栈
- <C/C++数据结构> 栈
- 数据结构-栈/c++/迷宫
- 数据结构---栈(C++)
- 《数据结构(C语言版)》- 栈
- C数据结构-顺序栈
- 【数据结构】【C】顺序栈
- c语言数据结构之栈
- 数据结构C语言实现栈
- 数据结构 链式 栈 c实现
- 数据结构.栈(C语言实现)
- C 基础数据结构---栈 ADT
- 数据结构-------C栈和队列
- 数据结构--链式栈(C语言)
- C语言数据结构-顺序栈
- 数据结构_3:栈:C语言
- 数据结构(c)——栈
- 数据结构---栈C语言实现
- JS中的prototype
- Spring IOC容器的初始化过程(1)
- 《统计学习方法》笔记——支持向量机(SVM)
- 立体声、双声道、单声道的区别
- faster rcnn训练过程出现loss=nan解决办法
- 数据结构C++栈
- socket理解(1)
- MySql中一个简单的存储过程刷数据库数据
- 整数划分
- JAVA上加密算法的实现用例
- kafka broker的常用配置
- 关于UIImage图片处理详细使用
- HttpClient 教程 (三)
- c++引用作为参数和返回值小结