java自定义栈(链表实现)
来源:互联网 发布:日本矮黑人种 知乎 编辑:程序博客网 时间:2024/06/04 18:42
使用链表来实现栈比用数组更加方便,也易于节省空间,因为栈只能在栈顶进行操作,不需要进行随机访问栈元素
然后再实现该IStack接口;
首先实现栈接口IStack,提供出栈、入栈、获取栈顶元素、判断是否为空以及清空栈等基本功能:
定义一个Node类,用于保存链中点的信息:
package my.stack;public class Node<T> {private T data;private Node<T> next;public Node(){data = null;next = null;}public Node(T data){this.data = data;this.next = null;}public Node(T data, Node<T> next){this.data = data;this.next = next;}public void setData(T data){this.data = data;}public T getData(){return this.data;}public void setNext(Node<T> next){this.next = next;}public Node<T> getNext(){return this.next;}}
然后再实现该IStack接口;
package my.stack;public class LinkedStack<T> implements IStack<T> {private Node<T> top;private int size;public LinkedStack(){this.top = null;this.size = 0;}public LinkedStack(T data){this();Node<T> node = new Node<T>(data);this.top = node;this.size ++;}@Overridepublic void clear() {this.top = null;this.size = 0;}@Overridepublic boolean isEmpty() {return this.top == null;}@Overridepublic T peek() {return this.top.getData();}@Overridepublic T pop() {Node<T> oldTop = this.top;if(top == null){return null;}this.top = this.top.getNext();this.size --;return oldTop.getData();}@Overridepublic void push(T element) {Node<T> node = new Node<T>(element,top);this.top = node;this.size ++;}public int size(){return this.size;}}
编写一个基本客户端用来测试功能是否满足,是否有明显的错误;
package my.stack;public class MyArrayStackClient {public static void main(String[] args) {ArrayStack<Integer> stack = new ArrayStack<Integer>();stack.push(1);stack.push(2);stack.push(3);stack.push(4);stack.push(5);System.out.println(stack.isEmpty());System.out.println(stack.peek());//System.out.println(stack.pop());System.out.println(stack.size());stack.clear();System.out.println(stack.size());}}
- java自定义栈(链表实现)
- Java自定义实现链栈
- Java实现自定义链表
- Java实现自定义链表
- Java实现自定义栈
- 基于链表实现Java 自定义Stack栈
- java自定义栈(数组实现)
- Java数组实现自定义栈
- java自定义栈(数组实现)
- Java自定义实现链队列
- 在java实现自定义链表(单向链表)
- 基于链表实现Java 自定义Queue队列
- 用java实现的自定义单向链表
- java 自定义单向链表实现“反序”输出
- Java小程序之自定义链表的实现
- java自定义栈实现简单迷宫
- java实现自定义标签
- Java实现自定义序列
- POJ 2513 solution
- Android 线程详解
- Oracle之自定义函数
- @+id 和 @id的区别
- 万恶的C++ template编译机制
- java自定义栈(链表实现)
- SEO-下拉框排名
- POJ 1236
- 自恢复保险丝的简介和选型(LT电子)
- getsockopt()/setsockopt()函数的使用收藏
- 多种类型转换实例
- 调试技术: Linux core dump file
- 计算一个时间距离今天还有多少天
- SAP R/3 Instances and Clients