java数据算法-栈
来源:互联网 发布:黑帽seo 快照劫持 编辑:程序博客网 时间:2024/06/06 12:50
有很长的时间没有写文章了,因为我之前一直有项目在忙,后面又要准备期末考试,期末刚考完,又马不停蹄的去实习。我在校期间真的是很忙,学生会,班委,项目,学习,所以能找出的空余时间也不是很多,有空了就整理一下我的学习笔记,和大家分享一下。我之前报过一些编程比赛,像CCF认证,华为编程大赛,微软的编程之美,hihocoder大赛,有兴趣的朋友可以去看一看,如果后边有空的话,我也可以和大家分享一下我的结题思路。 好了,言归正传,这一次先和大家分享一下栈。栈在数据结构中,是一种后入先出的结构,大家可以想一下一个箱子,这个箱子中的东西我是一个压在一个上面的,这个肯定是先放进去的放在下边,后放进去的放在上边,如果想拿下边的东西,势必要把上边的东西先拿出来。那么我们在实际的编程当中又有什么用呢?很多人在写计算器的过程当中会用到桟,这里我就不赘述了,分享一个ppt给大家看一下吧 [简易计算器(栈)](http://wenku.baidu.com/link?url=WgP-2UcEJy53ShbZC3gQVHZTXrHbgg14COe3HE9ybEfI82sr8nMvc-FobNBS9WwQr1ljoAha9YoR_B2kFjx65CDs1aTE0lV5rTx1UCOyCZW)还有一些用于数制转换,10进制转2进制等等。接下来我给大家介绍一下在JAVA当中怎样写桟
package datastructure;import java.util.LinkedList;/** * * @author qincheng */public class StackADT<T> { int top=0; LinkedList<T> stack=new LinkedList<>(); public void push(T e){ top++; stack.add(e); } public T pull(){ if(top>0){ T e=stack.get(top-1); top--; stack.remove(top); return e; } return null; }}
在这里面我使用了泛型,因为我们事先不知道栈里面要存什么东西,可以使String字符串,也可以是整数,浮点数。所以我们使用了一个泛型。这个栈实现起来简单吧。下面我来给大家演示一下这个栈的使用
public static void main(String[] args) { // TODO code application logic here StackADT<Integer> stack; stack=new StackADT<Integer>(); stack.push(5); stack.push(6); System.out.println(stack.pull()); System.out.println(stack.pull()); }
这里我们建立的是一个整数类型的栈。首先,我们将栈中的添加一个5,然后,我们在添加一个整数6。之后,我再将他们取出来。我们来看一下运行的结果
结果时后进入栈的,先被取出来。可能有朋友要问,如果在我的栈空的情况下 在pull会怎么样呢 ?下面我们将代码修改一下,改成添加2个元素,取出3次,那么结果呢?
返回的是null,并没有报错而退出,这样会使程序继续进行下去。程序员在编程过程最好先 访问一下数值top,在决定是否在栈中取出元素。
0 0
- java数据算法-栈
- Java算法:数据自定义转换器
- java经典算法_034打乱数据顺序
- 数据挖掘apriori算法Java代码实现
- 数据挖掘apriori算法Java代码实现
- java中常见的数据算法
- 1.2数据抽象(算法课java)
- Java实现数据统计的常用算法
- Java实现数据统计的常用算法
- 面试记录-数据开发/算法/JAVA
- java写的决策树算法(数据挖掘算法)
- 数据算法
- 在JAVA中使用DES算法加密数据
- java防止数据以科学计算法输出
- Java与C#交互DES算法加密解密数据
- java 基本类型数据自增自减算法
- 数据挖掘--频繁集测试--Apriori算法--java实现
- 数据挖掘:K最近邻(KNN)算法的java实现
- 五布局之绝对布局AbsoluteLayout
- HDUOJ 1201 18岁生日(判断闰年)
- shape控件美化
- C++课程设计——停车场管理系统
- 经典的SQL语句,适合新手练习使用(三)-技巧
- java数据算法-栈
- 善用GDB 调试一些函数栈被毁坏的问题
- .9图的制作(也叫9妹图,因为图片格式是以.9结尾的)
- 这是我的第一个博客,我打算用它来记录我自己自学android开发的过程
- ViewPager 用法
- 什么是顶尖的互联网产品经理?
- Lowest Common Ancestor of a Binary Search Tree
- 设计模式(21) - 责任链模式
- poj2576二维01背包