java 栈的实现
来源:互联网 发布:传奇盛世天命法神数据 编辑:程序博客网 时间:2024/05/16 06:22
接口定义
interface Stack<T> { public T pop(); public void push(T element); public boolean isEmpty(); public T peek();}
接口实现:链表方式
class LinkedStack<T> implements Stack<T>{ //不用容器或者数组等数据结构存储节点 //Node定义一个节点类 private class Node<U>{ private U item; //存储的data private Node<U> next; //类似指针 Node(){ this.item = null; this.next = null; } Node(U item, Node<U> next){ this.item = item; this.next = next; } boolean end(){ return item == null && next == null; } } private Node<T> top ; //栈顶指针 LinkedStack(){ top = new Node<T>(); } //弹栈 public T pop(){ if(this.isEmpty() == true){ throw new EmptyStackException(); } T result = top.item; if(!top.end()) { top = top.next; } return result; } //压栈 public void push(T element){ top = new Node<T>(element, top); } //判断是否为空 public boolean isEmpty(){ return top.end(); } //返回栈顶元素 public T peek(){ if(this.isEmpty() == true){ throw new EmptyStackException(); } T result = top.item; return result; } }
接口实现:容器方式
class StackList<T> implements Stack<T> { private List<T> list ; //用容器实现 StackList(){ list = new ArrayList<T>(); } //弹栈 public T pop(){ if(this.isEmpty() == true){ throw new EmptyStackException(); } return list.remove(list.size()-1); } //压栈 public void push(T element){ list.add(element); } //判断是否为空 public boolean isEmpty(){ return list.size() == 0; } //返回栈顶元素 public T peek(){ if(this.isEmpty() == true){ throw new EmptyStackException(); } return list.get(list.size()-1); }}
0 0
- 栈的实现(JAVA)
- 栈的实现-----java
- 【java】栈的实现
- 栈的java实现
- 栈的Java实现
- 栈的实现-java
- 栈 的java实现
- Java栈的实现
- java栈的实现
- 栈的实现java
- Java 栈的实现
- Java 栈的实现
- java栈的实现
- 栈的java实现
- java 栈的实现
- java栈的实现
- java栈的实现
- Java栈的实现
- SQLSERVER嵌套事务
- Hibernate Cascade 属性
- Yii2框架 model方法下setAttributes用法(自定义model 添加方法)
- HelloJni导入到Eclipse及命令行编译
- eclipse在loading workbench时闪退的解决方案
- java 栈的实现
- JSP新闻系统之四后台主页面
- [笔记] 互联网创业首选北京!
- 无线真机调试,解放数据线!
- 深度学习平台H2O简介
- TabLayout的使用详解
- VR学习第一节:VR是什么?VR AR的区别
- loading
- 最大公约数(辗转相除法和更相减损法)