資料結構——連結串列實現佇列(泛型)
阿新 • • 發佈:2018-12-28
package Test; public class LinkedListQueue { public static void main(String[] args) { // TODO Auto-generated method stub Queue <Integer> queue=new Queue<Integer>(); queue.add(1); queue.add(2); queue.add(3); queue.add(4); queue.add(5); System.out.println(queue.pop()); System.out.println(queue.pop()); System.out.println(queue.pop()); System.out.println(queue.pop()); System.out.println(queue.pop()); } } class Node<E>{ public Node(E data2) { this.data=(E) data2; } // TODO Auto-generated constructor stub public E data; public Node<E> next=null; } class Queue<E>{ private Node<E> Head=null; private Node<E> tail=null; public boolean isEmpty(){ boolean a=(Head==null&&tail==null); return a; } public void add(E data) { Node <E> newNode=new Node<E>(data); if(Head==null&&tail==null) { Head=tail=newNode; //佇列是空的 } else { tail.next=newNode; tail=newNode;//新增 } } public E pop()//先進先出 { if(this.isEmpty()) { return null;//這個是空的 } E data=Head.data; Head=Head.next; return data;//返回出棧的元素 } public int size() { Node<E>temp=Head; int n=0; while(temp!=null) { n++; temp=temp.next; } return n; } }