@@ -10,6 +10,7 @@ class BinarySearchTree {
10
10
constructor ( ) {
11
11
this . root = null ;
12
12
}
13
+
13
14
insert ( value ) {
14
15
var newNode = new Node ( value ) ;
15
16
if ( this . root === null ) {
@@ -34,6 +35,7 @@ class BinarySearchTree {
34
35
}
35
36
}
36
37
}
38
+
37
39
find ( value ) {
38
40
if ( this . root === null ) return false ;
39
41
var current = this . root ,
@@ -50,6 +52,7 @@ class BinarySearchTree {
50
52
if ( ! found ) return undefined ;
51
53
return current ;
52
54
}
55
+
53
56
contains ( value ) {
54
57
if ( this . root === null ) return false ;
55
58
var current = this . root ,
@@ -61,6 +64,53 @@ class BinarySearchTree {
61
64
}
62
65
return false ;
63
66
}
67
+
68
+ BreadthFirstSearch ( ) {
69
+ let node = this . root ,
70
+ data = [ ] ,
71
+ queue = [ ] ;
72
+ queue . push ( node ) ;
73
+
74
+ while ( queue . length ) {
75
+ node = queue . shift ( ) ;
76
+ data . push ( node . value ) ;
77
+ if ( node . left ) queue . push ( node . left ) ;
78
+ if ( node . right ) queue . push ( node . right ) ;
79
+ }
80
+
81
+ return data ;
82
+ }
83
+
84
+ DepthFirstSearchPreOrder ( ) {
85
+ let data = [ ] ;
86
+ function traverse ( node ) {
87
+ data . push ( node . value ) ;
88
+ if ( node . left ) traverse ( node . left ) ;
89
+ if ( node . right ) traverse ( node . right ) ;
90
+ }
91
+ traverse ( this . root ) ;
92
+ return data ;
93
+ }
94
+ DepthFirstSearchPostOrder ( ) {
95
+ let data = [ ] ;
96
+ function traverse ( node ) {
97
+ if ( node . left ) traverse ( node . left ) ;
98
+ if ( node . right ) traverse ( node . right ) ;
99
+ data . push ( node . value ) ;
100
+ }
101
+ traverse ( this . root ) ;
102
+ return data ;
103
+ }
104
+ DepthFirstSearchInOrder ( ) {
105
+ let data = [ ] ;
106
+ function traverse ( node ) {
107
+ if ( node . left ) traverse ( node . left ) ;
108
+ data . push ( node . value ) ;
109
+ if ( node . right ) traverse ( node . right ) ;
110
+ }
111
+ traverse ( this . root ) ;
112
+ return data ;
113
+ }
64
114
}
65
115
66
116
// 10
@@ -76,8 +126,13 @@ tree.insert(2);
76
126
tree . insert ( 16 ) ;
77
127
tree . insert ( 7 ) ;
78
128
79
- console . log ( tree . find ( 13 ) ) ;
80
- console . log ( tree . find ( 19 ) ) ;
129
+ console . log ( "node with value 13:" , tree . find ( 13 ) ) ;
130
+ console . log ( "node with value 19:" , tree . find ( 19 ) ) ;
131
+
132
+ console . log ( "tree coontais node with value 2:" , tree . contains ( 2 ) ) ;
133
+ console . log ( "tree coontais node with value 534:" , tree . contains ( 534 ) ) ;
81
134
82
- console . log ( tree . contains ( 2 ) ) ;
83
- console . log ( tree . contains ( 534 ) ) ;
135
+ console . log ( "BreadthFirstSearch:" , tree . BreadthFirstSearch ( ) ) ;
136
+ console . log ( "DepthFirstSearchPreOrder:" , tree . DepthFirstSearchPreOrder ( ) ) ;
137
+ console . log ( "DepthFirstSearchPostOrder:" , tree . DepthFirstSearchPostOrder ( ) ) ;
138
+ console . log ( "DepthFirstSearchInOrder:" , tree . DepthFirstSearchInOrder ( ) ) ;
0 commit comments