队列是一种先进先出的数据结构,下面是关于链表的队列实现方式:
package chapter5.level1;
public class LinkQueue {
//这里为了方便取出,设置front为虚拟辅助结点,队列设置链表尾部插入,头部取出
public Node front;
public LinkQueue(){
front = new Node(0);
}
public void push(int data){
Node temp = front;
Node newNode = new Node(data);
while (temp.next != null){
temp = temp.next;
}
temp.next = newNode;
}
public int pull(){
Node temp = front;
if(temp.next == null){
System.out.println("队列为空");
return -1;
}
Node firstNode = temp.next;
front.next = firstNode.next;
return firstNode.data;
}
public void traverse(){
Node temp = front.next;
while (temp!= null){
System.out.println(temp.data);
temp = temp.next;
}
}
static class Node{
public int data;
public Node next;
public Node(int data){
this.data = data;
next = null;
}
}
public static void main(String[] args) {
LinkQueue linkQueue = new LinkQueue();
linkQueue.push(1);
linkQueue.push(3);
linkQueue.push(4);
linkQueue.traverse();
int n = linkQueue.pull();
System.out.println("删除的元素"+n);
linkQueue.traverse();
}
}