File tree Expand file tree Collapse file tree
data-structure-algorithm/src/main/java/data/structure/queue Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments