栈,队列,并查集等算法工具实现(2)
来源:互联网 发布:spss数据录入教程 编辑:程序博客网 时间:2024/06/07 09:51
接上篇,实现一下队列:
循环队列实现代码:
API定义如下
package lee.tools;public interface Queue<T>{boolean isEmpty(); //是否为空void enQuene(T data); //入队T deQueue(); //出队}
循环队列实现代码:
package lee.tools;public class CircleQueue<T> implements Queue<T>{T arr[];int size;public int front;public int rear;@SuppressWarnings("unchecked")public CircleQueue(){size=5;arr = (T[]) new Object[size];}@Overridepublic boolean isEmpty() {if(front==rear){return true;}else{return false;}}public boolean isFull(){if(front==(rear+1)%size){return true;}else{return false;}}
// 如果队列空间不够用,扩大一倍public void enLargeQueue(){ @SuppressWarnings("unchecked")T[] newArry = (T[]) new Object[size*2];for(int i=0;i<size;i++){newArry[i] = arr[i];}this.size = size*2;arr = newArry;}@Overridepublic void enQuene(T data) {if(isFull()){enLargeQueue();}arr[rear]=data;rear = (rear+1)%size;}@Overridepublic T deQueue() {if( isEmpty() ){System.out.println("the Queue is empty"); return null;}T key=arr[front];front=(front+1)%size;return key;}}
链接队列实现如下:
package lee.tools;public class LinkedQueue<T> implements Queue<T>{Node<T> head;Node<T> tail;int size;public boolean isEmpty(){if(head==null){return true;}else{return false;}}public void enQuene(T data){if(head==null){head = new Node<T>(data);tail=head;}else{tail.next=new Node<T>(data);tail = tail.next;}}public T deQueue(){if(!isEmpty()){T temp =head.data;head = head.next;return temp;}else return null;}class Node<T>{T data;Node<T> next;Node(T d){data = d;}}}
0 0
- 栈,队列,并查集等算法工具实现(2)
- 栈,队列,并查集等算法工具实现(1)
- 栈,队列,并查集等算法工具实现(3)
- 使用并查集UnionFind和优先队列PriorityQueue实现Kruskal算法
- 算法之并查集 C语言实现2
- [算法] 并查集概念及其实现
- 使用并查集实现Kruscal算法
- Kruskal算法+并查集实现
- 并查集实现Kruskal算法
- Kruskal算法的并查集实现
- java实现并查集算法
- [容易] kruskal 算法并查集实现
- 并查集及其算法实现
- LCA,RMQ,并查集, tarjan算法等相关
- 总结_六天专题:栈和队列,树,并查集,KMP匹配算法
- HDU 1811 Rank of Tetris(拓扑排序,队列实现,并查集)
- 并查集工具(菜鸟模板)
- 并查集算法
- 黑马程序员_001_面向对象的特性
- Exception in thread main java.lang.Error Unresolved compilation problem
- 如何判断H264的帧为I帧
- 一些国外大学免费硕博全文数据库以及部分期刊全文
- svn移迁:linux之间svn迁移备份
- 栈,队列,并查集等算法工具实现(2)
- php中$GLOBALS和global的区别
- ORACLE UNDO表空间
- oracle时间模型
- linux内核常用头文件之-----linux/kobject.h
- php中fun($param)和fun(&$param)的区别
- mpegts的PTS获取方式
- 3.隐式类型转换
- 单词到散列表的唯一映射算法