File tree Expand file tree Collapse file tree 10 files changed +287
-24
lines changed Expand file tree Collapse file tree 10 files changed +287
-24
lines changed Load Diff This file was deleted.
Load Diff This file was deleted.
Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ package com .sl .test20170221 ;
2
+
3
+ import java .util .Arrays ;
4
+
5
+ public class ArrayList implements List {
6
+
7
+ private int size = 0 ;
8
+
9
+ private Object [] elementData = new Object [100 ];
10
+
11
+ @ Override
12
+ public void add (Object o ) {
13
+ grow (elementData );
14
+ elementData [size ] = o ;
15
+ }
16
+
17
+ @ Override
18
+ public void add (int index , Object o ) {
19
+ grow (elementData );
20
+ for (int i = size - 1 ;i >= index ;i --){
21
+ elementData [i +1 ] = elementData [i ];
22
+ }
23
+ elementData [index ] = o ;
24
+ }
25
+
26
+ @ Override
27
+ public Object get (int index ) {
28
+ return elementData [index ];
29
+ }
30
+
31
+ @ Override
32
+ public Object remove (int index ) {
33
+ size --;
34
+ for (int i = index ;i < size ;i ++){
35
+ elementData [i ] = elementData [i +1 ];
36
+ }
37
+ elementData [size ] = null ;
38
+ return elementData ;
39
+ }
40
+
41
+ @ Override
42
+ public int size () {
43
+
44
+ return size ;
45
+ }
46
+
47
+ private void grow (Object [] elementData ){
48
+ size ++;
49
+ if (size >= elementData .length ){
50
+ int newSize = elementData .length + 100 ;
51
+ elementData = Arrays .copyOf (elementData , newSize );
52
+ }
53
+ }
54
+
55
+ }
Original file line number Diff line number Diff line change
1
+ package com .sl .test20170221 ;
2
+
3
+ public class LinkedList implements List {
4
+ private Node root ;
5
+ int index ;
6
+
7
+ public void addNode (String name ){
8
+ if (root == null ){
9
+ root = new Node (name );
10
+ }else {
11
+ root .add (name );
12
+ }
13
+ }
14
+
15
+
16
+
17
+
18
+ class Node {
19
+ Object data ;
20
+ Node next ;
21
+
22
+
23
+ Node (Object data ){
24
+ this .data = data ;
25
+ }
26
+ //添加节点
27
+ public void add (Object data ){
28
+ if (this .next == null ){
29
+ this .next = new Node (data );
30
+ }else {
31
+ this .next .add (data );
32
+ }
33
+ }
34
+ //删除节点
35
+ public Object del (int i ){
36
+ if (this .next != null ){
37
+ index ++;
38
+ if (i == index ){
39
+ this .next = this .next .next ;
40
+ return this .next .data ;
41
+ }else {
42
+ this .next .del (i );
43
+ }
44
+ }
45
+ return null ;
46
+ }
47
+
48
+
49
+ //遍历
50
+ public void traversal (){
51
+ if (this .next != null ){
52
+ index ++;
53
+ this .next .traversal ();
54
+ }
55
+ }
56
+ //指定位置增加
57
+ public void add (int i , Object o ){
58
+ if (this .next != null ){
59
+ if (i == index ){
60
+ Node node = new Node (data );
61
+ node .next = this .next .next ;
62
+ this .next = node ;
63
+ return ;
64
+ }else {
65
+ this .next .add (i ,o );
66
+ }
67
+ index ++;
68
+ }
69
+ }
70
+
71
+ //得到指定的节点
72
+ public Object get (int i ){
73
+ if (this .next != null ){
74
+
75
+ if (i == index ){
76
+ return this .data ;
77
+ }else {
78
+ this .next .get (i );
79
+ }
80
+ index ++;
81
+ }
82
+ return null ;
83
+ }
84
+
85
+ }
86
+
87
+ @ Override
88
+ public void add (Object data ) {
89
+ if (root == null ){
90
+ root = new Node (data );
91
+ }else {
92
+ root .add (data );
93
+ }
94
+ }
95
+
96
+ @ Override
97
+ public void add (int index , Object o ) {
98
+ if (root != null ){
99
+ root .add (index , o );
100
+ }
101
+ }
102
+
103
+ @ Override
104
+ public Object get (int index ) {
105
+ if (root .next != null ){
106
+ return root .get (index );
107
+ }
108
+ return null ;
109
+ }
110
+
111
+ @ Override
112
+ public Object remove (int index ) {
113
+ if (root != null ){
114
+ return root .del (index );
115
+ }
116
+ return null ;
117
+ }
118
+
119
+ @ Override
120
+ public int size () {
121
+ if (root != null ){
122
+ root .traversal ();
123
+ }
124
+ return index ;
125
+ }
126
+
127
+ }
Original file line number Diff line number Diff line change
1
+ package com .sl .test20170221 ;
2
+
3
+ public interface List {
4
+ public void add (Object o );
5
+ public void add (int index , Object o );
6
+ public Object get (int index );
7
+ public Object remove (int index );
8
+ public int size ();
9
+ }
Original file line number Diff line number Diff line change
1
+ package com .sl .test20170221 ;
2
+
3
+ import com .sl .test20170221 .LinkedList .Node ;
4
+
5
+ public class Queue {
6
+
7
+ private Node first ;
8
+ private int index ;
9
+
10
+ class Node {
11
+ Object data ;
12
+ Node next ;
13
+
14
+
15
+ Node (Object data ){
16
+ this .data = data ;
17
+ }
18
+ //添加节点
19
+ public void add (Object data ){
20
+ if (this .next == null ){
21
+ this .next = new Node (data );
22
+ }else {
23
+ this .next .add (data );
24
+ }
25
+ }
26
+
27
+ //遍历
28
+ public void traversal (){
29
+ if (this .next != null ){
30
+ index ++;
31
+ this .next .traversal ();
32
+ }
33
+ }
34
+ }
35
+
36
+ public void enQueue (Object o ){
37
+ if (first != null ){
38
+ first .add (o );
39
+ }
40
+ }
41
+
42
+ public Object deQueue (){
43
+ if (first != null ){
44
+ Object obj = first .data ;
45
+ first = first .next ;
46
+ return obj ;
47
+ }
48
+ return null ;
49
+ }
50
+
51
+ public boolean isEmpty (){
52
+ if (first == null ){
53
+ return true ;
54
+ }else {
55
+ return false ;
56
+ }
57
+ }
58
+
59
+ public int size (){
60
+ if (first != null ){
61
+ first .traversal ();
62
+ }
63
+ return index ;
64
+ }
65
+ }
Original file line number Diff line number Diff line change
1
+ package com .sl .test20170221 ;
2
+
3
+ public class Stack {
4
+ private List elementData = new ArrayList ();
5
+
6
+ public void push (Object o ){
7
+ elementData .add (o );
8
+ }
9
+
10
+ public Object pop (){
11
+ int size = elementData .size ();
12
+ Object obj = elementData .remove (size --);
13
+ return obj ;
14
+ }
15
+
16
+ public Object peek (){
17
+ int size = elementData .size ();
18
+ return elementData .get (size - 1 );
19
+ }
20
+ public boolean isEmpty (){
21
+ int size = elementData .size ();
22
+ if (size == 0 ){
23
+ return true ;
24
+ }else {
25
+ return false ;
26
+ }
27
+ }
28
+ public int size (){
29
+ return elementData .size ();
30
+ }
31
+ }
You can’t perform that action at this time.
0 commit comments