File tree Expand file tree Collapse file tree 4 files changed +81
-2
lines changed
app/src/main/java/com/example/datastructure Expand file tree Collapse file tree 4 files changed +81
-2
lines changed Original file line number Diff line number Diff line change
1
+ package com .example .datastructure ;
2
+
3
+ /**
4
+ * 基于二分搜索树的set
5
+ */
6
+ public class BSTSet <E extends Comparable <E >> implements Set <E >{
7
+ private BinarySearchTree <E > mBst ;
8
+
9
+ public BSTSet () {
10
+ this .mBst = new BinarySearchTree <>();
11
+ }
12
+
13
+ @ Override
14
+ public int getSize () {
15
+ return mBst .getSize ();
16
+ }
17
+
18
+ @ Override
19
+ public boolean isEmpty () {
20
+ return mBst .isEmpty ();
21
+ }
22
+
23
+ @ Override
24
+ public void add (E e ) {
25
+ mBst .add (e );
26
+ }
27
+
28
+ @ Override
29
+ public boolean contains (E e ) {
30
+ return mBst .contains (e );
31
+ }
32
+ }
Original file line number Diff line number Diff line change @@ -89,7 +89,7 @@ public void inOrder() {
89
89
inOrder (root );
90
90
}
91
91
92
- private void inOrder (Node node ){
92
+ private void inOrder (Node node ) {
93
93
inOrder (node .left );
94
94
Log .d ("访问节点" , node .e .toString ());
95
95
inOrder (node .right );
@@ -101,7 +101,7 @@ public void postOrder() {
101
101
postOrder (root );
102
102
}
103
103
104
- private void postOrder (Node node ){
104
+ private void postOrder (Node node ) {
105
105
postOrder (node .left );
106
106
postOrder (node .right );
107
107
Log .d ("访问节点" , node .e .toString ());
@@ -111,6 +111,10 @@ public boolean isEmpty() {
111
111
return size == 0 ;
112
112
}
113
113
114
+ public int getSize () {
115
+ return size ;
116
+ }
117
+
114
118
private class Node {
115
119
public E e ;
116
120
public Node left , right ;
Original file line number Diff line number Diff line change
1
+ package com .example .datastructure ;
2
+
3
+ /**
4
+ * 基于链表的Set
5
+ */
6
+ public class LinkedListSet <E > implements Set <E >{
7
+ private LinkedList <E > linkedList ;
8
+
9
+ public LinkedListSet () {
10
+ this .linkedList = new LinkedList <>();
11
+ }
12
+
13
+ @ Override
14
+ public int getSize () {
15
+ return linkedList .getSize ();
16
+ }
17
+
18
+ @ Override
19
+ public boolean isEmpty () {
20
+ return linkedList .isEmpty ();
21
+ }
22
+
23
+ //链表本身不去重
24
+ @ Override
25
+ public void add (E e ) {
26
+ if (!linkedList .contains (e )){
27
+ linkedList .addFirst (e );
28
+ }
29
+ }
30
+
31
+ @ Override
32
+ public boolean contains (E e ) {
33
+ return linkedList .contains (e );
34
+ }
35
+ }
Original file line number Diff line number Diff line change
1
+ package com .example .datastructure ;
2
+
3
+ public interface Set <E > {
4
+ int getSize ();
5
+ boolean isEmpty ();
6
+ void add (E e );
7
+ boolean contains (E e );
8
+ }
You can’t perform that action at this time.
0 commit comments