java 用单链表实现队列

来源:互联网 发布:黑魂3男捏脸数据 编辑:程序博客网 时间:2024/05/29 03:48
public class LinkQueue<T> {class Node<T>{private T data;//数据域private Node<T> next;//引用域public Node() {this.data=null;this.next=null;}public Node(T data){this.data=data;this.next=null;}public void setNext(Node<T> t){this.next=t;}public T getData(){return this.data;}public Node<T> getNext(){return this.next;}}private Node<T> head;//队头private Node<T> tail;//队尾public LinkQueue(){this.head=null;this.tail=null;}//入队public boolean inQueue(T t){Node<T> p=new Node<T>(t);//生成一个结点if(head==null)//如果头等于空{head=p;//头引用指向这个结点tail=p;//尾引用指向这个结点}else {tail.next=p;//插入尾部tail=p;//尾引用指向新的尾结点}return true;}//dream it possible//出队public T outQueue(){if(head==null) return null;else {T t=head.getData();//取下对队头head=head.next;//头引用后移return t;}}//查队头public T peek(){if(head==null) return null;elsereturn head.getData();}//判空public boolean isEmpty(){return head==null;}}

测试:

public class LinkQueueTest {public static void main(String[] args) {LinkQueue<Integer> linkQueue=new LinkQueue<Integer>();//入队5个for(int i=0;i<5;i++){linkQueue.inQueue(i);}//出栈测试for(int i=0;!linkQueue.isEmpty();i++){System.out.println(linkQueue.peek()+"  "+linkQueue.outQueue());}//for(int i=0;i<8;i++)//{//System.out.println(linkQueue.peek()+"  "+linkQueue.outQueue());//}}}
结果:

0  0
1  1
2  2
3  3
4  4


原创粉丝点击