java算法系列
来源:互联网 发布:电脑自带看图软件 编辑:程序博客网 时间:2024/05/03 17:12
java算法系列一栈
栈的概念
栈是一种特殊的线性表,堆栈的数据元素以及数据元素之间的关系和线性表是完全一样的。差别是线性表是在任意位置进行插入和删除操作,栈是只允许在固定的一端进行插入和删除,栈的插入和删除只允许在栈顶,栈的插入和删除通常称为进栈和出栈。数据集合
每个数据元素的数据类型可以是任意的类型操作的集合
进栈push(obj):把数据元素obj插入到栈中。
出栈pop() : 删除的数据元素由函数返回。
获得栈顶元素getTop():取栈顶的数据并由函数返回。
判断栈是不是为空isEmpty():若栈非空返回true,否则返回false。栈的类型:
栈的类型包括两种:顺序栈和链式栈- 代码设计:
设计MyStack接口
实现顺序栈类SequenceStack类
public interface MyStack {
//进栈
public void push(Object obj);
//出栈
public Object pop();
//获得栈顶元素
public Object getTop();
//判断栈是不是为空
public boolean isEmpty();
}
public class SequenceStack implements MyStack{
Object[] myStack;final int defaultSize = 10;int top;int maxSize;public SequenceStack(){ init(defaultSize);}public SequenceStack(int size){ init(size);}public void init(int size){ this.maxSize = size; top = 0; myStack = new Object[size];}@Overridepublic void push(Object obj) throws Exception{ //添加的时候,首先要判断栈是不是已经给满了 if (top == maxSize) { throw new Exception("栈已经满!!!"); } else { myStack[top] = obj; top++; }}@Overridepublic Object pop() throws Exception{ //如果栈为空的时候抛出异常 if (isEmpty()) { throw new Exception("栈为空!!!"); }else{ top--; return myStack[top]; }}@Overridepublic Object getTop() throws Exception{ if (isEmpty()) { throw new Exception("栈为空!!!"); }else{ return myStack[top--]; }}@Overridepublic boolean isEmpty() { return top == 0 ?true:false;}
}
public class TestMyStack {
@Testpublic void testMyStack() throws Exception{ SequenceStack s = new SequenceStack(); s.push(new Integer(10)); s.push(new Integer(1)); s.push(new Integer(8)); s.push(new Integer(7)); s.push(new Integer(5)); while (!s.isEmpty()) { System.out.print(s.pop()+" "); }}
}
0 0
- java算法系列
- java算法系列-排序
- java算法系列之一:快速排序算法
- java算法系列之一:堆排序算法
- 人工智能 Java 坦克机器人系列: 遗传算法
- 人工智能 Java 坦克机器人系列: 遗传算法
- 人工智能 Java 坦克机器人系列: 遗传算法
- 人工智能 Java 坦克机器人系列: 遗传算法
- [算法] 人工智能Java 坦克机器人系列
- Java数据结构和算法系列1--链表
- Java数据结构和算法系列2--数组
- 算法细节系列(1):Java swap
- Java并发系列-27、非阻塞算法
- Java系列-排序算法之选择排序
- 趣写算法系列之--匈牙利算法 Java实现
- 图算法系列之最短路算法Dijkstra(Java)
- 算法系列
- 算法系列
- [leetcode]35. Search Insert Position
- sendto & recvfrom 详解
- 文章标题 csu1333 :Funny Car Racing(最短路 spfa)
- 机器学习笔记1-Supervised learning
- shell脚本基础
- java算法系列
- 下拉框选中值对应切换内容的效果
- html学习资料
- 数据科学家应该掌握的12种机器学习算法(附信息图)
- 要么读书,要么健身,要么恋爱(五)从你的全世界路过
- FPGA器件中的亚稳态
- MySql脚本的执行
- 实践反馈-StrickMode
- bash变量详解