标签:io ar java for 数据 on as size new
package queue.linkQueue;
public class Node {
// 数据域
Object element;
// 指针域
Node next;
// 头结点初始化
public Node(Node next) {
this.next = next;
}
// 非头结点初始化
public Node(Object element, Node next) {
this.element = element;
this.next = next;
}
}
***************************************************************************************
package queue.linkQueue;
public class LinkQueue {
Node front;// 头结点
Node rear;// 尾结点
int size;// 队列大小
// 初始化一个空队列
public LinkQueue() {
front = new Node(null);
rear = front;
size = 0;
}
// 队列的大小
public int size() {
return size;
}
// 判断队列是否为空
public boolean isEmpty() {
return size == 0;
}
// 入队列
public void enQueue(int data) {
Node node = new Node(data, null);
rear.next = node;
rear=node;
size++;
}
// 出队列
public Object deQueue() {
if (isEmpty()) {
throw new IndexOutOfBoundsException("队列为空");
}
Node node = front.next;// 得到以一个结点
front.next = node.next;// 将头结点的第一个结点指向第一个结点的下一个结点
if (node == rear) {// 如果队列中只有一个元素,则删除后将rear指向头结点
rear = front;
}
size--;
return node.element;
}
// 得到对头元素,不删除
public Object getFront() {
if (isEmpty()) {
return null;
} else {
return front.next.element;
}
}
// 打印队列中的元素
public void traverse() {
if (isEmpty()) {
System.out.println("null");
} else {
Node current = front.next;// 当前结点
for (Node node = current; node != null; node = node.next) {
System.out.print(node.element + " ");
}
}
System.out.println();
}
}
Java数据结构系列之——队列(3):队列的链式存储结构及其实现
标签:io ar java for 数据 on as size new
原文地址:http://blog.csdn.net/tmwl0728/article/details/41401167