File tree Expand file tree Collapse file tree 4 files changed +39
-9
lines changed
DataStructures/AbstractDataTypes/Trees Expand file tree Collapse file tree 4 files changed +39
-9
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ private static void BinaryTreeUsage()
2121 bTree . TraversePreOrder ( ) ;
2222 bTree . TraverseInOrder ( ) ;
2323 bTree . TraversePostOrder ( ) ;
24+ bTree . TraverseLevelOrder ( ) ;
2425
2526 bTree . Remove ( 13 ) ;
2627
@@ -53,8 +54,8 @@ private static void AvlTreeUsage()
5354
5455 public static void Use ( )
5556 {
56- // BinaryTreeUsage();
57- AvlTreeUsage ( ) ;
57+ BinaryTreeUsage ( ) ;
58+ // AvlTreeUsage();
5859 }
5960
6061}
Original file line number Diff line number Diff line change @@ -18,12 +18,12 @@ public static void Main()
1818 // Lists.Use();
1919 // Stacks.Use();
2020 // Queues.Use();
21- // Trees.Use();
21+ Trees . Use ( ) ;
2222 // Sorting
2323 // Sorting.Use();
2424
2525 // Encoding
26- Encoding . Use ( ) ;
26+ // Encoding.Use();
2727 }
2828}
2929
Original file line number Diff line number Diff line change @@ -167,30 +167,30 @@ private static Node GetBalancedTree(Node current)
167167 private static Node RotateRr ( Node parent )
168168 {
169169 var pivot = parent . Right ;
170- parent . Right = pivot . Left ;
170+ parent . Right = pivot ! . Left ;
171171 pivot . Left = parent ;
172172 return pivot ;
173173 }
174174
175175 private static Node RotateLl ( Node parent )
176176 {
177177 var pivot = parent . Left ;
178- parent . Left = pivot . Right ;
178+ parent . Left = pivot ! . Right ;
179179 pivot . Right = parent ;
180180 return pivot ;
181181 }
182182
183183 private static Node RotateLr ( Node parent )
184184 {
185185 var pivot = parent . Left ;
186- parent . Left = RotateRr ( pivot ) ;
186+ parent . Left = RotateRr ( pivot ! ) ;
187187 return RotateLl ( parent ) ;
188188 }
189189
190190 private static Node RotateRl ( Node parent )
191191 {
192192 var pivot = parent . Right ;
193- parent . Right = RotateLl ( pivot ) ;
193+ parent . Right = RotateLl ( pivot ! ) ;
194194 return RotateRr ( parent ) ;
195195 }
196196
Original file line number Diff line number Diff line change @@ -106,7 +106,7 @@ public void Remove(T data)
106106 {
107107 return _root is null ? null : Max ( _root ) ;
108108 }
109-
109+
110110 private static T Min ( Node node )
111111 {
112112 var min = node . Data ;
@@ -204,4 +204,33 @@ private static void TraversePostOrder(Node? parent)
204204 TraversePostOrder ( parent . Right ) ;
205205 Console . Write ( parent . Data + " " ) ;
206206 }
207+
208+ /// <summary>
209+ /// Level Order
210+ /// </summary>
211+ public void TraverseLevelOrder ( )
212+ {
213+ Console . Write ( $ "TraverseLevelOrder(LRD) with Depth { GetDepth ( ) } : ") ;
214+ TraverseLevelOrder ( _root ) ;
215+ Console . WriteLine ( ) ;
216+ }
217+
218+ private static void TraverseLevelOrder ( Node ? parent )
219+ {
220+ if ( parent is null )
221+ return ;
222+
223+ var q = new Queue < Node > ( ) ;
224+ q . Enqueue ( parent ) ;
225+ while ( q . Count > 0 )
226+ {
227+ var r = q . Dequeue ( ) ;
228+ Console . Write ( r . Data + " " ) ;
229+
230+ if ( r . Left is not null )
231+ q . Enqueue ( r . Left ) ;
232+ if ( r . Right is not null )
233+ q . Enqueue ( r . Right ) ;
234+ }
235+ }
207236}
You can’t perform that action at this time.
0 commit comments