public void HeapOperationsMethod() { MinHeap minHeap = new MinHeap(); minHeap.Add(4); minHeap.Add(2); minHeap.Add(1); while (minHeap.Count > 0) { Console.WriteLine(minHeap.Pop()); } }
public int Add(int val) { pq.Add(val); if (pq.Count() > size) { pq.Pop(); } return(pq.Peek()); }
public ListNode MergeKLists(ListNode[] lists) { var pq = new MinHeap(); foreach (var node in lists) { if (node != null) { pq.Add(node.val, node); } } ListNode head = null; ListNode curr = null; while (pq.map.Any()) { var node = pq.PopMin(); if (node.next != null) { pq.Add(node.next.val, node.next); } if (curr == null) { head = node; head = curr; } else { curr.next = node; curr = curr.next; } } return(head); }
public KthLargest(int k, int[] nums) { pq = new MinHeap(k + 1); size = k; foreach (int n in nums) { pq.Add(n); if (pq.Count() > size) { Console.WriteLine("removing: ", pq.Peek()); pq.Pop(); } } }