1.结点类
package edu.tcu.soft;
/*结点类*/
public class Node<T> {
private T data;
private Node<T> nextNode;
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public Node<T> getNextNode() {
return nextNode;
}
public void setNextNode(Node<T> nextNode) {
this.nextNode = nextNode;
}
public Node(T data, Node<T> nextNode) {
super();
this.data = data;
this.nextNode = nextNode;
}
}
2.链队列实现类
package edu.tcu.soft;
/*链队列实现类*/
public class LinkQueue<T> {
private Node<T> front;
private Node<T> rear;
private int size;
public LinkQueue() {
Node<T> node = new Node<T>(null, null);
front = node;
rear = node;
}
// 入队操作
public void enQueue(T data) {
Node<T> node = new Node<T>(data, null);
rear.setNextNode(node);
rear = node;
size++;
}
// 出队操作
public T deQueue() {
if(front == rear) {
System.out.println("链队为空");
return null;
}
Node<T> node=front.getNextNode();
T t=node.getData();
front.setNextNode(node.getNextNode());
if(node.getNextNode()==null)
rear=front;
size--;
return t;
}
// 获取队列的对头元素
public T getQueueTop() {
return front.getNextNode().getData();
}
// 判断链队列是否为空
public int empty() {
if (size == 0)
return 1;
return 0;
}
}
3.测试类
package edu.tcu.soft;
public class Test {
public static void main(String[] args) {
LinkQueue<Integer> queue=new LinkQueue<>();
queue.enQueue(9);
queue.enQueue(8);
queue.enQueue(7);
queue.enQueue(6);
System.out.println("队头元素:"+queue.getQueueTop());
System.out.println("出队元素:"+queue.deQueue());
System.out.println("队是否为空:"+queue.empty());
queue.deQueue();
queue.deQueue();
System.out.println("队头元素:"+queue.getQueueTop());
}
}