【给将来学神的算法详解--数据结构】(1)栈
来源:互联网 发布:雅马哈网络经销商 编辑:程序博客网 时间:2024/06/08 07:47
新栏目!!!
————————————华丽的分割线————————————
栈是个神奇的东西,怎么说呢?你就想象你在我小学食堂排队打汤,结果所有人都从队伍头部插进来就好了
那么我们先介绍一下栈:
栈,又称FILO(First In Last Out先进后出),是一个线性结构,只有一个指针-栈顶(top)
那么栈有什么操作呢?
好了我们再请出我们的打汤大妈
这时候,终于有人来了
于是,top++,把这个人扔进空栈中。
正当阿姨打完汤,有一个人串了进来!
那么问题来了,这个人从左边还是右边加入呢?
由于输入输出端都在阿姨处,所以从靠近阿姨处加入。
所以这是加入(push)代码
void push(int x) { a[top++]=x; }
还有stack的主代码
const int MAXN=10086;struct stack{ int top; int a[MAXN]; stack(){memset(a,0,sizeof(a)),top=0;}}
加完人后,变成了这样:
然后第二个人打完汤又出去了。
这时候就要用到出栈(pop)函数,就是把top–就可以了(别问我为什么)
bool pop() { if(!top)return 0; top--; return 1; }
然后变成了这样
突然,数以万计的人冲了进来!!!
过了九九八十一年(miao)终于轮到他了
当然,还有一些front(取栈顶值),empty(判断是否空栈)等函数没讲,不过由于太水,请大家自行研究。
代码集合:
#include <cstdio>const int MAXN=10086;struct stack{ int top; int a[MAXN]; stack(){memset(a,0,sizeof(a)),top=0;} bool empty() { return !top; } bool pop() { if(!top)return 0; top--; return 1; } void push(int x) { a[top++]=x; } int front() { return a[top]; }}
————————————华丽的分割线————————————
end。。。
0 0
- 【给将来学神的算法详解--数据结构】(1)栈
- 【给将来学神的算法详解--数据结构--线段树】(1)简介
- 【给将来学神的算法详解--高精】(1)(我的)高精度模板
- 【给将来学神的算法详解--高精】(2)高精的基础
- 【给将来学神的算法详解--高精】(6)不可避免的时间复杂度
- 【给将来学神的算法详解--高精】(3)A+B Problem
- 【给将来学神的算法详解--高精】(4)对消与还原
- 【给将来学神的算法详解--高精】(5)论乘法
- 【给将来学神的算法详解--高精】(7)大大小小&其他符号
- 【给将来学神的算法详解--高精】(8)“高级”高精度函数
- 【给将来学神的算法详解--高精】(9)输入输出与总结
- 学数据结构与算法推荐的书
- 将来如果我学过一门便会删掉里面相关的文章(立个小目标嘛哈哈哈)
- 学数据结构和算法
- 给将来想从事软件开发大学生的一些建议
- 将来的事将来再说
- 我学的第一个《数据结构与算法》的程序
- 数据结构学的到底是什么,和算法的关系
- ads学习链接(火烽主讲
- Linux服务器安装和配置JDK
- A1306. apex(卓亮)
- Oracle 生成一张测试表并插入随机数据
- ssm 映射文件出错
- 【给将来学神的算法详解--数据结构】(1)栈
- int 类型转换为u_char*类型
- 92课程作业,hive自定义IMFRecordReader,切分^^尖尖头及| 分割符
- Matlab连接字符串的方法
- log4j.properties 详解与配置步骤
- TCP协议与UDP协议的区别
- 抽象类与接口的区别
- HTML基础知识学习笔记
- 基于visual c++之windows核心编程代码分析(6)分配和释放可读可写的虚拟内存页面