用链表生成一个队列

package 队列;

 

/**

 * 定义一个结点

 * @author Administrator

 *

 */

class Node{

Node next = null;

Integer data;

public Node(Integer data){

this.data = data;

}

}

 

/**

 * 用链表创建一个队列

 * @author Administrator

 *

 */

public class Queue {

Node head = null;

Node tail = null;

public boolean isEmpty(){

return head == null;

}

/**

 * 添加元素

 */

public void push(Integer data){

Node node = new Node(data);

if(this.isEmpty()){

head = tail = node;

          return;

}

tail.next = node;

tail = node;

}

/**

 * 取出元素

 * @return

 */

public Integer pop(){

if(this.isEmpty()){

return null;

}

Integer data = head.data;

head = head.next;

return data;

}

/**

 * 取队列峰值

 * @return

 */

public Integer peek(){

if(this.isEmpty()){

return null;

}

Integer data = head.data;

return data;

}

/**

 * 计算队列中元素的个数

 * @return

 */

public int size(){

Node tmp = head;

int size = 0;

while(tmp != null){

size++;

tmp = tmp.next;

}

return size;

}

/**

 * 主函数

 * @param args

 */

public static void main(String[] args) {

Queue queue = new Queue();

queue.push(1);

queue.push(2);

queue.push(3);

queue.push(4);

System.out.println("队列里元素的个数:"+queue.size());

System.out.println("队列的峰值:"+queue.peek());

System.out.println("打印队列:");

while(!queue.isEmpty()){

System.out.println(queue.pop());

}

}

}

你可能感兴趣的:(队列)