@@ -10,37 +10,37 @@ namespace Advanced.Algorithms.DataStructures
1010 /// </summary>
1111 public class BHeap < T > : IEnumerable < T > where T : IComparable
1212 {
13- private readonly bool isMax ;
13+ private readonly bool isMaxHeap ;
1414
1515 private T [ ] heapArray ;
1616 private readonly IComparer < T > comparer ;
1717
1818 public int Count { get ; private set ; }
1919
20- public BHeap ( bool isMax = false )
21- : this ( isMax , null , null ) { }
20+ public BHeap ( Order order = Order . Ascending )
21+ : this ( order , null , null ) { }
2222
23- public BHeap ( bool isMax , IEnumerable < T > initial )
24- : this ( isMax , initial , null ) { }
23+ public BHeap ( Order order , IEnumerable < T > initial )
24+ : this ( order , initial , null ) { }
2525
26- public BHeap ( bool isMax , IComparer < T > comparer )
27- : this ( isMax , null , comparer ) { }
26+ public BHeap ( Order order , IComparer < T > comparer )
27+ : this ( order , null , comparer ) { }
2828
2929 /// <summary>
3030 /// Time complexity: O(n) if initial is provided. Otherwise O(1).
3131 /// </summary>
3232 /// <param name="initial">The initial items in the heap.</param>
33- public BHeap ( bool isMax , IEnumerable < T > initial , IComparer < T > comparer )
33+ public BHeap ( Order order , IEnumerable < T > initial , IComparer < T > comparer )
3434 {
35- this . isMax = isMax ;
35+ this . isMaxHeap = order == Order . Descending ;
3636
3737 if ( comparer != null )
3838 {
39- this . comparer = new HeapComparer < T > ( isMax , comparer ) ;
39+ this . comparer = new CustomComparer < T > ( order , comparer ) ;
4040 }
4141 else
4242 {
43- this . comparer = new HeapComparer < T > ( isMax , Comparer < T > . Default ) ;
43+ this . comparer = new CustomComparer < T > ( order , Comparer < T > . Default ) ;
4444 }
4545
4646 if ( initial != null )
0 commit comments