数据结构-栈的一些基础操作c++代码
来源:互联网 发布:淘宝的慈恩数码怎么样 编辑:程序博客网 时间:2024/06/05 20:48
堆栈(简称栈) 是一种操作受限的线性表,只允许在表的同一端进行插入和删除操作,且这些操作是按先进后出的原则进行的。
template <class T>struct SLNode{T data; //数据域SLNode<T> *next; //指针域SLNode(SLNode *nextNode = NULL) //构造函数{next = nextNode;}SLNode(const T &item, SLNode *nextNode = NULL) //构造函数{data = item;next = nextNode;}};//顺序栈template <class T>class AStack{public:AStack(int MaxStackSize) //构造函数{size = MaxStackSize;stackArray = new T[MaxStackSize];top = -1;}~AStack() //析构函数{delete []stackArray;}bool Push(const T &item) //向栈顶压入一个元素{if (IsFull()){cout << "Pushing into a full stack!" << endl;return false;}stackArray[++top] = item;return true;}bool Pop(T &item) //从栈顶弹出一个元素{if (IsEmpty()){cout << "Poping from an empty stack!" << endl;return false;}item = stackArray[top--];return true;}bool Peek(T &item) const //存取栈顶元素{if (IsEmpty()){cout << "Peeking from an empty stack!" << endl;return false;}item = stackArray[top];return true;}int IsEmpty() const //检测栈是否为空{return top == -1;}int IsFull() const //检测是否满栈{return top == size-1;}void clear() //清空栈{top = -1;}private:int size; //数组的规模T *stackArray; //存放堆栈元素的数组int top; //栈顶所在数组元素的下标};//链式栈类LStack的定义和实现template <class T>class LStack{public:LStack() //构造函数{top = NULL;}~LStack() //析构函数{clear();}void clear() //清空栈{SLNode<T> *temp;while(!IsEmpty()){temp = top->next;delete top;top = temp;}}bool Push(const T &item) //向栈顶压入一个元素{top = new SLNode<T>(item, top);return true;}bool Pop(T &item) //从栈顶弹出一个元素{if(IsEmpty()){cout << "Poping from an empty stack!" << endl;return false;}item = top->data;SLNode<T> *temp = top;top = top->next;}bool Peek(T &item) const //读取栈顶元素{if(IsEmpty()){cout << "Poping from an empty stack!" << endl;return false;}item = top->data;return true;}int IsEmpty() const{return top == NULL;}private:SLNode<T> *top;};
0 0
- 数据结构-栈的一些基础操作c++代码
- 数据结构-线性表的一些基础操作 c++代码
- 数据结构的一些代码
- C语言数据结构单链表的一些基本操作
- 一些可运行的C语言数据结构代码
- splay树的一些基本操作 c语言代码
- C语言数据结构栈的操作集
- 数据结构C语言版基础操作(1)
- 数据结构-树的基础代码
- 数据结构-图的基础代码
- 数据结构之顺序栈的一些基本操作
- 数据结构之链式栈的一些基本操作
- 【数据结构】顺序栈的基本操作操作---C/C++
- 【数据结构】顺序栈的基本操作操作---C/C++
- 《数据结构》 栈代码操作集合
- linux的一些基础操作
- 【STM32】一些基础的操作
- 数据结构学习系类列八-二叉树的一些操作(c++)
- 深入理解HTTP协议及原理分析
- POJ 3126 Prime Path (bfs、埃氏筛法)
- ActionBar隐藏app图标
- opencv imread 函数读取CV_16UC1的png图片
- UISearchBar控件
- 数据结构-栈的一些基础操作c++代码
- MyEclipse8.5安装
- 深入单链表的快速排序详解
- c++生成机器码
- 时间管理
- 无废话ExtJs 入门教程一[学习方法]
- newInstance()和new()
- java内部类
- codeforces 4D Mysterious Present