Java 使用链表来实现队列功能
来源:互联网 发布:振芯科技 人工智能 编辑:程序博客网 时间:2024/06/15 03:32
/** * 链表元素定义 * Create by zxb on 2017/8/27 */public class Element<T> { private Element<T> next; private T value; public Element<T> getNext() { return next; } public void setNext(Element<T> next) { this.next = next; } public T getValue() { return value; } public void setValue(T value) { this.value = value; }}/** * 列表模板接口 * Created by zhengxb on 2017/8/27. */public interface IList<T> { boolean pushBack(T newElement); boolean popFront(); Element<T> front(); int size();}/** * 链表实现 * Create by zxb on 2017/8/27 */public class ListImpl<T> implements IList<T> { private Element<T> first = null; private Element<T> last = null; private int size = 0; @Override public boolean pushBack(T newElement) { Element<T> element = new Element<>(); element.setValue(newElement); if (size == 0) { first = element; size++; return true; } if (last == null) { last = new Element<>(); last.setValue(newElement); first.setNext(last); } else { last.setNext(element); last = element; } size++; return true; } @Override public boolean popFront() { if (size == 0) { return false; } first = first.getNext(); size--; return true; } @Override public Element<T> front() { return first; } @Override public int size() { return size; }}/** * 队列接口 * Create by zxb on 2017/8/27 */public interface IQueue<R> { boolean push(R newElement); boolean pop(); R front(); int size(); boolean display();}/** * 队列实现 * Create by zxb on 2017/8/27 */public class QueueImpl<R> implements IQueue<R> { private ListImpl<R> list; @Override public boolean push(R newElement) { if (list == null) { list = new ListImpl<>(); } list.pushBack(newElement); return true; } @Override public boolean pop() { if (list == null) { list = new ListImpl<>(); } list.popFront(); return true; } @Override public R front() { return list.front().getValue(); } @Override public int size() { return list.size(); } @Override public boolean display() { Element<R> front = list.front(); System.out.println("列表元素:"); Element<R> temp = front; while (temp != null) { System.out.print(temp.getValue()); temp = temp.getNext(); System.out.println("\t"); } return true; }}/** * Create by zxb on 2017/8/27 */public class Test { public static void main(String[] args) { IQueue<String> queue = new QueueImpl<>(); queue.push("one"); queue.push("two"); queue.push("three"); queue.pop(); queue.display(); }}
执行结果:
阅读全文
0 0
- Java 使用链表来实现队列功能
- JAVA 实现队列功能
- 使用俩个栈实现一个队列的功能
- 使用两个堆栈实现队列功能
- 使用两个栈实现队列的功能
- java使用数组实现队列
- 使用java.util.concurrent实现的线程池、消息队列功能
- 使用java.util.concurrent实现的线程池、消息队列功能
- java 实现 两个栈实现一个队列的功能
- 12.springboot使用redis的订阅功能实现消息队列
- Java用两个队列实现一个栈的功能
- Java数据结构之队列-使用数组实现队列
- 使用Java集合类实现队列
- java使用数组实现优先级队列
- java使用堆结构实现优先队列
- java 使用ReentrantLock Condition实现阻塞队列
- java使用数组实现顺序队列
- java使用数组实现链式队列
- 1022. D进制的A+B (20)
- 观看animation时右下角小窗为空时,可以直接将模型Prefab拖进去观察
- 使用Jenkins配置+Maven的自动化构建
- window下安装nginx
- 利用dubbo实现数据库的负载均衡
- Java 使用链表来实现队列功能
- Unity3d的Assetbundle打包
- 【hdu1151】—Air Raid(最小路径覆盖)
- python神经网络
- 使用 yum 命令保存安装过的包
- JSP脚本中的9个内置对象
- CocoWu‘s English Party
- brew安装软件在哪里看到
- JSTree 自定义图标 不同节点 显示不同图标