队列的链式存储方式的实现(Java语言描述)
来源:互联网 发布:java经典编程300例 编辑:程序博客网 时间:2024/06/08 16:47
链队列的结构示意图:
先进先出。
QueueInterface.java//操作方法接口
package 队列的实现;public interface QueueInterface {public void enQueue(Object t);public Object delQueue();public int size();public boolean isEmpty();public Object head();public void clear();}
Node.java//节点类
package 队列的实现;public class Node<T> {T data;Node next;}
Queue.java//队列的定义和接口实现
package 队列的实现;public class Queue<T> implements QueueInterface{ Node<T> front,rear;//对头指针,队尾指针 //构造一个空的链队列 public Queue(){ front = new Node<T>(); rear = new Node<T>(); rear = front; }//实现接口里的操作 public boolean isEmpty(){if(front == rear)return true;elsereturn false;} public int size(){ int i = 0; Node<T> p = front.next; while(p != null){ p = p.next; i++; } return i; } public Object head(){ if(this.isEmpty() == false) return front.next.data; System.out.println("队列为空,不存在队头元素!"); return 0; }public void enQueue(Object obj){Node<T> p = new Node<T>();p.data = (T)obj;rear.next = p;p.next = null;rear = p;}public Object delQueue(){T t;Node<T> p = new Node<T>();if(this.isEmpty() == true){System.out.println("队列为空,不能进行删除操作!");return 0;}else{p = front.next;front.next = p.next;if(p.next == null)//出队后队列为空rear = front;t = p.data;p = null;return t;}}public void clear(){front = rear;}}
TestQueue.java//测试类
package 队列的实现;public class TestQueue {public static void main(String[] args) {Queue<Integer> queue = new Queue<Integer>();for(int i=1; i<=10; i++){queue.enQueue(i);}System.out.println(queue.size());System.out.println(queue.isEmpty());for(int i=1; i<=10; i++){System.out.print(queue.delQueue() + " ");}System.out.println();System.out.println(queue.isEmpty());for(int i=1; i<=10; i++){queue.enQueue(i);}System.out.println(queue.isEmpty());queue.clear();System.out.println(queue.isEmpty());}}
实现结果:
10
false
1 2 3 4 5 6 7 8 9 10
true
false
true
0 0
- 队列的链式存储方式的实现(Java语言描述)
- 队列的链式存储实现c语言
- 队列的链式存储方式
- 数据结构(java语言描述)-- 二叉查找树的链式存储结构的实现
- 单链表的存储方式及实现(java语言描述)
- JAVA实现队列 队列的链式存储结构及操作
- Java基础 - 队列的链式存储结构及实现
- 链式队列的存储....
- 队列的链式存储
- 队列的链式存储
- 队列的链式存储
- 队列的链式存储
- 队列的链式存储
- 队列的链式存储
- 队列的链式存储
- 队列的链式存储结构C++实现
- 循环队列的链式存储实现
- 队列的链式存储结构及实现
- nginx之main函数的解读(六)
- 阿里巴巴面试
- 系统调用 非阻塞处理 --- select函数
- My SQL 创建数据库
- 统计输入字符串的个数
- 队列的链式存储方式的实现(Java语言描述)
- nodejs>>assert
- 23个设计模式总结(1)——高手与菜鸟的区别
- VS2008常用快捷键
- 虚拟机下ubuntu共享方式上网(有线网和无线网)
- 关于百度seo作弊,你中了吗?
- BaseHTTPRequestHandler handle() handle_one_request() method()
- socket编程的 sendto 函数
- HOJ 13013 Triangles(map)