JAVA实现队列 队列的链式存储结构及操作
2014-09-04 16:37
686 查看
这是一篇JAVA实现队列 队列的链式存储结构及操作实现的文章,有兴趣的可以看看。
首先还是写个接口吧,这样方法多的时候不会乱
实现过程:
测试结果:
完毕,有疑问可以共同探讨!欢迎交流。
首先还是写个接口吧,这样方法多的时候不会乱
package com.guobing.queue; public interface Queue_Interface { public void init(); //初始化队列 public void enter(Object obj); //入队列 public Object leave(); //出对列 public Object peek(); //返回队列的首元素 boolean isEmpty(); //判断队列是否为空 public void clear(); //清空队列 public void print(); //打印队列 }
实现过程:
package com.guobing.queue; /** * JAVA实现队列 队列的链式存储结构及操作 * @author guob * */ public class LinkQueue implements Queue_Interface{ private Node front, rear; //定义头指针、尾指针 /** * 清空队列 */ @Override public void clear() { front = rear = null; System.out.println("队列已清空"); } /** * 入队列 */ @Override public void enter(Object obj) { if(rear == null) { //当队列为空时 front = rear = new Node(obj, null); //队尾指针和头指针相同 } else { //队列不为空 rear = rear.next = new Node(obj, null);//尾指针永远指向空 } } /** * 初始化 */ @Override public void init() { front = rear = null; } /** * 判断是否为空 */ @Override public boolean isEmpty() { return front == rear; } /** * 出队列 */ @Override public Object leave() { if(front == null) { //先判断是不是为空 return null; }else { Node p = front; //先得把头指针保存起来,不然就丢了 front = front.next; if(front == null) //需要判断是不是为空 rear = null; //为空的话尾指针必须要为null System.out.println("执行出队列操作,出队列的元素为:" + p.date); return p.date; } } /** * 返回队首元素 */ @Override public Object peek() { if(front == null) { System.out.println("队首元素为空"); return null; } else { System.out.println("队首元素为:" + front.date); return front.date; //不为空的时候返回头指针的值 } } /** * 打印出队列中的信息 */ @Override public void print() { Node p = front; System.out.println("当前队列中的元素为:"); while(p != null) { System.out.print(p.date + " "); p = p.next; } } public static void main(String [] args) { LinkQueue lk = new LinkQueue(); lk.init(); lk.enter("a"); lk.enter("b"); lk.enter("c"); lk.enter("d"); lk.print(); lk.peek(); lk.leave(); lk.print(); } } /** * 定义单链表 * @author guob * */ class Node { Object date; Node next; public Node(Object obj, Node nt) { this.date = obj; this.next = nt; } }
测试结果:
当前队列中的元素为: a b c d 队首元素为:a 执行出队列操作,出队列的元素为:a 当前队列中的元素为: b c d
完毕,有疑问可以共同探讨!欢迎交流。
相关文章推荐
- 数据结构(六)---队列的链式存储的实现---java版
- bo3-4.c 用单链表的基本操作实现链队列(存储结构由c3-2.h定义)的基本操作(9个)
- 队列的链式存储方式的实现(Java语言描述)
- 数据结构-队列的链式存储实现操作
- C++实现队列之链式存储结构
- 队列的不同存储结构及JAVA实现
- 队列(链式存储) java实现
- Java基础 - 栈的链式存储结构及实现
- 二叉树的链式存储结构 前序 后序 中序 层序遍历操作实现 判断是否完全二叉树
- [置顶] 数据结构——队列的链式存储结构以及实现
- 采用链式存储实现队列的初始化、入队、出队操作。
- 线性表的链式存储结构之单链表结点类的实现_Java
- 队列的存储结构和常见操作(c 语言实现)
- 队列的链式存储结构及实现
- 【队列】链式结构实现队列的基本操作
- 队列的链式存储结构与操作
- [数据结构]程杰队列的链式存储结构及实现代码
- 队列的存储结构和常见操作(c 语言实现)
- 数据结构(五)---栈的链式存储的实现---java版
- 线性表链式存储结构下基本操作的实现(初始化、赋值、取值、插入、删除、归并等)