1.使用链表实现队列
public class LinkQueue {
private Node head;
private Node tail;
private int size;
private class Node {
private Object data;
private Node next;
public Node(Object data) {
this.data = data;
}
}
public LinkQueue() {
head = null;
tail = null;
size = 0;
}
public void enQueue(Object data) {
Node node = new Node(data);
if(size==0) {
head = node;
tail = node;
size++;
}else {
tail.next = node;
tail = node;
size++;
}
}
public Object deQueue() {
Object data = null;
if(size==0) {
System.out.println("队列里没有数据");
}else if(head.next==null){
data = head.data;
head = null;
tail = null;
size--;
}else {
data = head.data;
head = head.next;
size--;
}
return data;
}
public void display() {
if(size==0) {
System.out.println("[]");
}else if(head.next == null) {
System.out.println("["+head.data+"]");
}else {
int tempSize = size;
Node node = head;
while(tempSize>0) {
if(node==head) {
System.out.print("["+node.data+"->");
}else if(node.next==null) {
System.out.print(node.data+"]");
}else {
System.out.print(node.data+"->");
}
node = node.next;
tempSize--;
}
System.out.println();
}
}
}
2.使用
public class TestLinkQueue {
public static void main(String[] args) {
LinkQueue queue = new LinkQueue();
queue.display();
queue.deQueue();
queue.enQueue("aa");
queue.display();
queue.enQueue("bb");
queue.display();
queue.enQueue("cc");
queue.display();
queue.deQueue();
queue.display();
}
}