File tree Expand file tree Collapse file tree 2 files changed +243
-0
lines changed
src/main/java/com/chen/dataStructure/linknode Expand file tree Collapse file tree 2 files changed +243
-0
lines changed Original file line number Diff line number Diff line change 1+ package com .chen .dataStructure .linknode ;
2+
3+ /**
4+ * 双端队列
5+ *
6+ * @author : chen weijie
7+ * @Date: 2019-03-13 11:12 PM
8+ */
9+ public class DoublePointLinkedList {
10+
11+
12+ private Node head ;
13+
14+ private Node tail ;
15+
16+ private int size ;
17+
18+
19+ private class Node {
20+
21+ private Object data ;
22+
23+ private Node next ;
24+
25+ public Node (Object data ) {
26+ this .data = data ;
27+ }
28+ }
29+
30+
31+ public DoublePointLinkedList () {
32+ this .head = null ;
33+ this .tail = null ;
34+ this .size = 0 ;
35+ }
36+
37+
38+ /**
39+ * 头部添加节点
40+ *
41+ * @param data
42+ */
43+ public void addHead (Object data ) {
44+
45+ Node node = new Node (data );
46+
47+ //如果链表为空,那么头节点和尾节点都是该新增节点
48+ if (size == 0 ) {
49+ size = 0 ;
50+ head = node ;
51+ tail = node ;
52+ } else {
53+ node .next = head ;
54+ head = node ;
55+ size ++;
56+ }
57+ }
58+
59+
60+ public void addTail (Object data ) {
61+
62+ Node node = new Node (data );
63+
64+ //如果链表为空,那么头节点和尾节点都是该新增节点
65+ if (size == 0 ) {
66+ size = 0 ;
67+ head = node ;
68+ tail = node ;
69+ } else {
70+ node .next = tail ;
71+ tail = node ;
72+ size ++;
73+ }
74+
75+ }
76+
77+
78+ /**
79+ * 删除头节点
80+ *
81+ * @return
82+ */
83+ public boolean deleteHead () {
84+
85+ if (size == 0 ) {
86+ return false ;
87+ }
88+
89+ if (head .next == null ) {
90+ head = null ;
91+ tail = null ;
92+ } else {
93+ head = head .next ;
94+ }
95+ size --;
96+ return true ;
97+ }
98+
99+
100+ /**
101+ * 判断是否为空
102+ *
103+ * @return
104+ */
105+ public boolean isEmpty () {
106+ return (size == 0 );
107+ }
108+
109+ /**
110+ * 获得链表的节点个数
111+ *
112+ * @return
113+ */
114+ public int getSize () {
115+ return size ;
116+ }
117+
118+ /**
119+ * 显示节点信息
120+ */
121+
122+ public void display () {
123+ if (size > 0 ) {
124+ Node node = head ;
125+ int tempSize = size ;
126+ if (tempSize == 1 ) {//当前链表只有一个节点
127+ System .out .println ("[" + node .data + "]" );
128+ return ;
129+ }
130+ while (tempSize > 0 ) {
131+ if (node .equals (head )) {
132+ System .out .print ("[" + node .data + "->" );
133+ } else if (node .next == null ) {
134+ System .out .print (node .data + "]" );
135+ } else {
136+ System .out .print (node .data + "->" );
137+ }
138+ node = node .next ;
139+ tempSize --;
140+ }
141+ System .out .println ();
142+ } else {//如果链表一个节点都没有,直接打印[]
143+ System .out .println ("[]" );
144+ }
145+ }
146+
147+
148+ }
Original file line number Diff line number Diff line change 1+ package com .chen .dataStructure .linknode ;
2+
3+ /**
4+ * 双向链表
5+ *
6+ * @author : chen weijie
7+ * @Date: 2019-03-13 11:49 PM
8+ */
9+ public class TwoWayLinkedList {
10+
11+
12+ private int size ;
13+
14+ private Node head ;
15+
16+ private Node tail ;
17+
18+
19+ public class Node {
20+
21+ private Object data ;
22+
23+ private Node next ;
24+
25+ private Node prew ;
26+
27+
28+ public Node (Object data ) {
29+ this .data = data ;
30+ }
31+ }
32+
33+
34+ public TwoWayLinkedList () {
35+ this .size = 0 ;
36+ this .head = null ;
37+ this .tail = null ;
38+ }
39+
40+
41+ public void addHead (Object data ) {
42+
43+ Node node = new Node (data );
44+ if (size == 0 ) {
45+ head = node ;
46+ tail = node ;
47+ } else {
48+ head .prew = node ;
49+ node .next = head ;
50+ head = node ;
51+ }
52+
53+ size ++;
54+ }
55+
56+
57+ public void addTail (Object data ) {
58+
59+ Node node = new Node (data );
60+ if (size == 0 ) {
61+ head = node ;
62+ tail = node ;
63+ } else {
64+ node .prew = tail ;
65+ tail .next = node ;
66+ tail = node ;
67+ }
68+ size ++;
69+ }
70+
71+
72+ public Node deleteHead () {
73+
74+ Node temp = head ;
75+ if (size > 0 ) {
76+ head = head .next ;
77+ head .prew = null ;
78+ size --;
79+ }
80+ return temp ;
81+ }
82+
83+ public Node deleteTail () {
84+
85+ Node temp = tail ;
86+ if (size > 0 ) {
87+ tail = head .prew ;
88+ tail .next = null ;
89+ size --;
90+ }
91+ return temp ;
92+ }
93+
94+
95+ }
You can’t perform that action at this time.
0 commit comments