Skip to content

Commit b3dfb8b

Browse files
committed
add > 队列 链表实现
1 parent a64723e commit b3dfb8b

2 files changed

Lines changed: 61 additions & 0 deletions

File tree

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package data.structure.queue;
2+
3+
/**
4+
* Created by 李恒名 on 2017/6/23.
5+
* <p>
6+
* 保存指向首尾节点的指针,每次从链表尾插入,从链表头删除。
7+
*/
8+
public class QueueLinkedImpl implements Queue {
9+
private Node first, last;
10+
11+
private class Node {
12+
private Node next;
13+
private Object element;
14+
}
15+
16+
@Override
17+
public void enQueue(Object element) {
18+
Node oldLast = last;
19+
last = new Node();
20+
last.element = element;
21+
last.next = null;
22+
if (first == null) {
23+
first = last;
24+
} else {
25+
oldLast.element = last;
26+
}
27+
28+
}
29+
30+
@Override
31+
public Object deQueue() {
32+
Object element = first.element;
33+
first = first.next;
34+
if (first == null) last = null;
35+
return element;
36+
}
37+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package data.structure.queue;
2+
3+
import org.junit.Test;
4+
5+
/**
6+
* Created by 李恒名 on 2017/6/8.
7+
*/
8+
public class Tester {
9+
10+
11+
//测试队列的链表实现
12+
@Test
13+
public void test2(){
14+
Queue queue = new QueueLinkedImpl();
15+
16+
queue.enQueue("1");
17+
queue.enQueue("2");
18+
queue.enQueue("3");
19+
20+
System.out.println(queue.deQueue());
21+
System.out.println(queue.deQueue());
22+
System.out.println(queue.deQueue());
23+
}
24+
}

0 commit comments

Comments
 (0)