队列是先进先出的,一般可以基于链表和数组实现。而链表的长度是可以改变的,实现起来先对简单。
public class LinkQueue {
private Node front = null;
private Node rear = null;
int size;
public LinkQueue(Node front, Node rear) {
this.front = new Node(0);
this.rear = new Node(0);
}
//入队
public void push(int val){
Node newNode = new Node(val);
Node tmp = front.next;
while (tmp.next != null) {
tmp = tmp.next;
}
tmp.next = newNode;
rear = newNode;
size++;
}
//出队
public int pull(){
if(front.next == null)
System.out.println("队列已空");
Node tmp = front.next;
front.next = tmp.next;
size--;
return tmp.val;
}
//遍历
public void traverse() {
Node tmp = front.next;
while(tmp != null){
System.out.println(tmp.val + '\t');
tmp = tmp.next;
}
}
class Node{
private int val;
private Node next;
public Node(int val) {
this.val = val;
}
}
}