java 实现数组队列和链表队列
2017-09-04 18:35
483 查看
package Queue; //用数组实现自己的队列 public class Queue { private static int DEFAULT_SIZE=100; private Object[] queue; private int front; private int tail; private int thelength; public Queue(){ thelength=DEFAULT_SIZE; init(); } public Queue(int length){ thelength=length; init(); } public int size(){ return (front-tail+queue.length)%queue.length; } private void init() { queue=new Object[thelength+1]; tail=front=0; } //入队列 public void put(Object e) throws Exception{ if(isFull()){ throw new Exception("队列已经满了,添加失败!"); } queue[front]=e; front=(front+1)%queue.length; } //出队列 public Object get() throws Exception{ if(isEmpty()){ throw new Exception("队列为空,删除失败!"); } Object e=queue[tail]; queue[tail]=null; tail=(tail+1)%queue.length; return e; } //清空队列 public void clear(){ queue=null; queue=new Object[thelength]; } public boolean isEmpty() { return front==tail; } //判断队列是否已满 public boolean isFull() { return (front+1)%queue.length==tail; } public static void main(String[] args){ Queue que=new Queue(4); char[] data=new char[]{'沧', '海','一','声'}; try { for(int i=0;i{ E data=null; Node next=null; public Node(E data){ this.data=data; } } public class MyLinkedListQueue{ Node head=null; Node tail=null; /** * 判断队列是否为空 */ public boolean isEmpty(){ return head==tail; } /** * 往队列里面添加节点 */ public void put(E data){ Node newnode=new Node(data); if(head==null&&tail==null){ head=tail=newnode; }else{ tail.next=newnode; tail=tail.next; } } /** * 从队列里面取出节点 */ public E get(){ if(head==null) return null; E e=head.data; head=head.next; return e; } /** * 返回队列的长度 */ public int size(){ if(head==null) return 0; Node temp=head; int num=0; while(temp!=null){ num++; temp=temp.next; } return num; } public static void main(String[] args){ MyLinkedListQueue queue=new MyLinkedListQueue(); queue.put(4); queue.put(3); System.out.println("queue.size()="+queue.size()+" queue.get()="+queue.get()+"queue.size()="+queue.size()); } }
相关文章推荐
- java使用数组和链表实现队列示例
- 队列基于链表和数组的实现方法(java)
- Java数组实现循环队列、Java链表实现队列
- java数组、链表实现栈
- java用链表实现堆栈和队列
- 队列——链表与数组实现(数据结构与算法分析C语言版)
- 队列的链表与数组实现
- 利用链表实现队列的Java代码
- 线性表、链表、栈、队列之java实现
- java 基于数组实现的队列
- 使用数组实现栈和循环队列(JAVA语言)
- 队列的数组和链表实现
- 队列(queue)的链表(list)实现及循环数组(circular array)实现 C++实现
- 用Java数组实现队列
- Java实现队列二:通过数组方式实现
- Java数组实现循环队列
- java数据结构之LinkedQueue(用链表实现的双端单向队列)
- java实现队列(数组方式)
- 数据结构复习:队列-Java数组实现
- java实现队列(链表方式)