数据结构之栈与队列
一。栈1。概念:栈(stack)是一种线性数据结构,只能访问它的一端来存储或者读取数据。栈是一种后进先出的结构(LIFO)
2。栈的主要操作:
.clear()——清栈
.isEmpty()——检查栈是否为空
.push(e)——压栈
.pop()——出栈
.topEl()——返回栈顶元素
3。栈的java实现:使用数组链表实现






























































































4。栈的应用:
1)程序中的匹配分割符,如(,[,{等符号
2)大数的运算,比如大数相加,转化为字符串,利用栈处理
3)回文字,例子:
































































































4)java虚拟机中的本地方法栈
二。队列(queue)
1。概念:队列也是线性结构,从尾部添加元素,从头部删除元素。与栈相反,队列是先入先出结构(FIFO)
2。队列主要操作:
.clear() ——清空队列
.isEmpty()——判断队列是否为空
.enqueue(el)——从尾部插入元素el
.dequeue()——从队列中起出第一个元素,并删除
.firstEl()——返回队列第一个元素,不删除。
3。队列的实现:
1)环形数组:需要考虑队列已满的两种情况,1,第一个元素在最后一个元素之后;2,第一个元素在第一单元,最后一个元素在最后单元。给出一个java实现:













































































































































文章转自庄周梦蝶 ,原文发布时间5.17
4。队列的应用:线性规划方面
最后更新:2017-05-17 11:36:28
上一篇:
算法之简单排序
下一篇:
欢迎加入阿里云云HBase技术交流群
上帝的巴别塔在崩塌?阿里翻译一年2500亿次调用,节省25亿美元
Elasticsearch 使用中文分词
《新编计算机科学概论》一0.2 计算机的历史
云架构和openstack的思考
cc End Of The World 2
《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一1.1.3 评估物理性能
[数据库]ROW_NUMBER() OVER函数的基本用法
Flume-ng出现HDFS IO error,Callable timed out异常
Tomcat启动报错:java.lang.IllegalArgumentException: Can't convert argument:null
《WCF技术剖析》博文系列汇总[持续更新中]