堆的基本实现
来源:互联网 发布:手机淘宝网电脑版登陆 编辑:程序博客网 时间:2024/05/18 14:28
今天讲栈,栈的基本操作是入栈和出栈,栈的特点是先进后出。同时在进栈的时候注意栈是否是满的,出栈的时候注意栈是否是空的。
直接上代码:
栈的类实现:
//使用类模板来实现template <class T>class stack{public:stack(int size);~stack();void pop();void push(T &a);bool isEmpty();bool isFull();void print(int index);private:int top;int size; T * stackArray;};template <class T>void stack<T>:: print(int index){cout<<stackArray[index];}template <class T>bool stack<T> ::isEmpty(){return top==-1}template <class T>bool stack<T> ::isFull(){return top==size ;}template <class T>stack<T>::stack(int size){if (size<=0){cout<<"the size is no less than 0";return ;}else{top = -1;this->size = size; this->stackArray = new T[size];for (int i=0;i<this->size;i++){stackArray[i]=0;}}}template <class T>stack<T>::~stack(){delete []stackArray;}template <class T>void stack<T>:: pop(){if false==isEmpty(){cout<<"the stack is not empty";stackArray[top--]=0;}else{cout<<"the stack is empty";return;}}template <class T>void stack<T>::push(T &a){if (true == isFull())return;else{stackArray[++top] = a;}}
在main函数中定义,使用类模板,并将template实例化为double类型。
#include <iostream>#include "stack.h"using namespace std;int main(){int size = 20;stack<double>stak(size);double element=0.9;stak.push(element);stak.print(0);}
值得注意的是在这里的top的自加和自减的顺序,在push的时候,要先自加,然后再压入元素。而在pop的时候,要先弹出元素,然后再自减。
0 0
- 堆的基本实现
- 堆的概念及基本操作实现
- 堆的基本操作集【Java实现】
- 4-2 堆的基本实现
- 一个最大堆的实现(最基本的功能)
- 排序--堆排序的基本思想及其代码实现
- 堆的基本实现及优先级队列问题
- 算法与数据结构-堆的基本操作C语言实现
- 算法与数据结构-堆的基本操作C语言实现
- 二叉堆的实现及其基本存储结构
- 堆(优先队列)的构建以及基本操作实现
- 堆的基本操作
- 堆的基本操作
- 堆的基本操作
- 堆的基本操作
- 堆的基本方法
- 堆的基本操作
- 堆的基本操作
- 图片封装下载器--自己的代码库--可以直接使用
- hdu5475__An easy problem(线段树单点更新)
- HTML5响应式布局案例
- Joda-Time Date(jdk) String相互转换
- redis中各种数据类型对应的jedis操作命令
- 堆的基本实现
- 图片下载---KVO
- 谷歌工程师薪资有多少 羡慕嫉妒恨
- 图片下载---第三方工具--一句话搞定
- 黑马程序员—java开发前奏
- DruidDataSource配置
- 宏的缺陷
- 开博第一篇
- linux系统中设备文件命名的规则