数据结构—栈(一)
来源:互联网 发布:mysql数据库忘记密码 编辑:程序博客网 时间:2024/05/21 12:21
栈(Stack),特殊的线性表,只能在表头进行插入和删除操作。又称为后进先出表、LIFO表。
因为之前发帖问动态规划时别人说可以用栈实现动态规划而去看了看,写下来留作记录~
栈实现的基本操作有:1、Empty()——判断一个栈是否为空栈;
2、Full()——判断一个栈是否为满栈;(与1及其类似)
3、Top()——返回栈顶元素;
4、Push(x)——把X插入栈顶;
5、Pop()——删除栈顶元素并输出;
看书上说栈分为顺序实现的链式指针形实现,我先学了顺序实现,用得是数组和C++的类实现。
下面是代码实现:
#include <iostream>using namespace std;class Stack{private:int top,*date,MAX;public:Stack(int size); //构造函数~Stack(); //析构函数bool Empty(); //判断是否为空int Top(); //获取栈顶值void Push(int x); //插入一个元素void Pop(); //删除一个元素int getSize(); //获取栈的大小};//----------------------------------成员函数的实现------------------------------Stack::Stack(int size){top=0;MAX=size;date=new int(size);}Stack::~Stack(){delete[] date;}bool Stack::Empty(){if(top==0)return 1;return 0;}int Stack::Top(){if(top==0)cout<<"栈为空。"<<endl;return date[top-1];}void Stack::Push(int x){if(top==MAX)cout<<"栈已满。"<<endl;else{date[top]=x;top++;}}void Stack::Pop() //通过让后一位的元素覆盖当前元素实现删除。{if(top==0)cout<<"栈为空。"<<endl;else{top--; cout<<date[top]<<endl; }}int Stack::getSize(){return size;}
0 0
- 数据结构—栈(一)
- 数据结构实践(一)—— 栈
- 数据结构之栈(一)
- 数据结构(一)栈(一)
- 【数据结构】——-栈、队列和数组(一)
- 数据结构与算法(10)——栈习题一
- 数据结构读书笔记(一)——表、栈和队列
- 数据结构—栈应用(一)数制转换
- 【数据结构】数据结构与算法(一)——线性结构
- 数据结构之栈(一)--顺序栈
- 数据结构基础(一)栈的实现
- 数据结构学习 栈与队列(一)
- 数据结构一(栈-数组实现)
- 数据结构(一)--------栈
- ceph学习(一)——数据结构
- 数据结构——线性表(一)
- 数据结构(一)——查找
- 数据结构——排序(一)
- 关于javascript函数带不带括号的问题
- 热爱生命使用SSD
- 1 单例模式 SingleTon
- SlidingMenu的简介
- 自定义Dbutils
- 数据结构—栈(一)
- mysql show processlist命令 详解
- 【C语言】将一个数组进行初始化、清空、逆序、显示。
- 高并发处理方案
- 技术和资金非瓶颈 宽带提速进展缓慢三大主因
- javascript继承模式原理与示例深入剖析
- ArcGIS Server REST服务学习
- leetcode--Linked List Cycle &Linked List Cycle II
- 【C语言】fibonacci数列 的递归和非递归 +浅谈递归优劣