数据结构之队列的Java实现
2016-08-12 21:47
746 查看
Java代码如下:
package com.ds.list;
/**
* 队列,先进先出的链式数据结构
*/
public class MyQueue<T> {
class Node {
public T data;
public Node next;
}
private Node front; //队头
private Node rear; //队尾
public MyQueue() {
Node node = new Node();
node.next = null;
this.rear = this.front = node;
}
//元素入队
public void enQueue(T t) {
Node node = new Node();
node.data = t;
node.next = this.rear;
this.rear = node;
log("enqueue data: " + t);
}
//元素出队
public T deQueue() {
if(this.front == this.rear) {
return null;
}
Node p = this.rear;
while(p.next != this.front) {
p = p.next;
}
T t = p.data;
this.front = p;
return t;
}
private static void log(String msg) {
System.out.println(msg);
}
public static void main(String[] args) {
MyQueue<String> queue = new MyQueue<>();
for(int i = 0; i < 5; i++) {
queue.enQueue("item " + i);
}
log("dequeue data: " + queue.deQueue());
log("dequeue data: " + queue.deQueue());
log("dequeue data: " + queue.deQueue());
log("dequeue data: " + queue.deQueue());
log("dequeue data: " + queue.deQueue());
log("dequeue data: " + queue.deQueue());
}
}
程序运行的结果如下图所示:
package com.ds.list;
/**
* 队列,先进先出的链式数据结构
*/
public class MyQueue<T> {
class Node {
public T data;
public Node next;
}
private Node front; //队头
private Node rear; //队尾
public MyQueue() {
Node node = new Node();
node.next = null;
this.rear = this.front = node;
}
//元素入队
public void enQueue(T t) {
Node node = new Node();
node.data = t;
node.next = this.rear;
this.rear = node;
log("enqueue data: " + t);
}
//元素出队
public T deQueue() {
if(this.front == this.rear) {
return null;
}
Node p = this.rear;
while(p.next != this.front) {
p = p.next;
}
T t = p.data;
this.front = p;
return t;
}
private static void log(String msg) {
System.out.println(msg);
}
public static void main(String[] args) {
MyQueue<String> queue = new MyQueue<>();
for(int i = 0; i < 5; i++) {
queue.enQueue("item " + i);
}
log("dequeue data: " + queue.deQueue());
log("dequeue data: " + queue.deQueue());
log("dequeue data: " + queue.deQueue());
log("dequeue data: " + queue.deQueue());
log("dequeue data: " + queue.deQueue());
log("dequeue data: " + queue.deQueue());
}
}
程序运行的结果如下图所示:
相关文章推荐
- java中的数据结构---栈、队列和树的实现
- 【数据结构】之队列的java实现(二)
- 数据结构学习----顺序循环队列(Java实现)
- 数据结构Java实现——②队列-->队列的“奇葩”二 优先级队列
- java实现栈,队列数据结构
- 数据结构之优先队列--二叉堆(Java实现)
- 数据结构学习----链式队列(Java实现)
- java 实现数据结构之队列
- Java基础课程学习总结,使用LinkedList简单模拟队列数据结构和堆栈数据结构的实现
- java实现数据结构——栈Stack与队列Queue
- 数据结构:循环队列--Java实现
- java 实现数据结构之队列
- 数据结构Java实现——②队列
- 数据结构的Java实现——栈和队列
- 【数据结构】之队列的java实现(一)
- java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表
- java 实现数据结构之队列
- 【数据结构】之队列的java实现(一)
- 数据结构Java实现——②队列--->队列的“奇葩”一循环顺序队列
- java 实现数据结构之队列