java链表实现队列
2016-10-19 14:57
309 查看
链表实现队列,好处是可以动态增长。
上代码:
1)、实现队列的一个节点:
private class Node {
public T data; //节点的值
public Node next; //指向下一个节点
public Node(T data, Node next) {
this.data = data;
this.next = next;
}
}
2)、队列构造器:
public LinkQueue() {
Node n = new Node(null, null);
n.next = null;
front = rear = n;
}
3)、入队算法:
public void enqueue(T data) {
// 创建一个节点
Node s = new Node(data, null);
// 将队尾指针指向新加入的节点,将s节点插入队尾
rear.next = s;
rear = s;
size++;
}
4)、出队算法:
public T dequeue() {
if (rear == front) {
try {
throw new Exception("堆栈为空");
} catch (Exception e) {
e.printStackTrace();
}
return null;
} else {
// 暂存队头元素
Node p = front.next;
T x = p.data;
// 将队头元素所在节点摘链
front.next = p.next;
// 判断出队列长度是否为1
if (p.next == null)
rear = front;
// 删除节点
p = null;
size--;
return x;
}
}
5)、长度
public int size() {
return size;
}
上代码:
1)、实现队列的一个节点:
private class Node {
public T data; //节点的值
public Node next; //指向下一个节点
public Node(T data, Node next) {
this.data = data;
this.next = next;
}
}
2)、队列构造器:
public LinkQueue() {
Node n = new Node(null, null);
n.next = null;
front = rear = n;
}
3)、入队算法:
public void enqueue(T data) {
// 创建一个节点
Node s = new Node(data, null);
// 将队尾指针指向新加入的节点,将s节点插入队尾
rear.next = s;
rear = s;
size++;
}
4)、出队算法:
public T dequeue() {
if (rear == front) {
try {
throw new Exception("堆栈为空");
} catch (Exception e) {
e.printStackTrace();
}
return null;
} else {
// 暂存队头元素
Node p = front.next;
T x = p.data;
// 将队头元素所在节点摘链
front.next = p.next;
// 判断出队列长度是否为1
if (p.next == null)
rear = front;
// 删除节点
p = null;
size--;
return x;
}
}
5)、长度
public int size() {
return size;
}
相关文章推荐
- java用链表实现堆栈和队列
- java使用数组和链表实现队列示例
- 数据结构——使用双端链表实现队列(java实现)
- (java链表)实现队列(望高人指点)
- java队列的链表实现
- java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表
- Java用链表实现栈和队列
- 链表队列的java实现
- 数据结构之链表、栈和队列 java代码实现
- 算法_栈与队列的Java链表实现
- 线性表、链表、栈、队列之java实现
- Java双端链表实现队列
- Java 模拟双端链表,以链表实现栈和队列
- 线性表 及Java实现 顺序表、链表、栈、队列
- 利用链表实现队列的Java代码
- java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表
- (4) 数据结构与算法 ---- 线性表 及Java实现 顺序表、链表、栈、队列
- 数据结构与算法 ---- 线性表 及Java实现 顺序表、链表、栈、队列
- Java用链表实现栈和队列
- JAVA实现最简单的双向链表、队列与栈(内部使用链表形式存储)