private void upHeap() { int i = size; T node = heap[i]; // save bottom node int j = i >>> 1; while (j > 0 && lessThan(node, heap[j])) { heap[i] = heap[j]; // shift parents down i = j; j = j >>> 1; } heap[i] = node; // install saved node }
private void upHeap() { int i = size; T node = heap[i]; // save bottom node int j = i >>> 1; while (j > 0 && lessThan(node, heap[j])) { heap[i] = heap[j]; // shift parents down i = j; j = j >>> 1; } heap[i] = node; // install saved node }
private void upHeap() { int i = size; T node = heap[i]; // save bottom node int j = i >>> 1; while (j > 0 && lessThan(node, heap[j])) { heap[i] = heap[j]; // shift parents down i = j; j = j >>> 1; } heap[i] = node; // install saved node }
private void upHeap() { int i = size; T node = heap[i]; // save bottom node int j = i >>> 1; while (j > 0 && lessThan(node, heap[j])) { heap[i] = heap[j]; // shift parents down i = j; j = j >>> 1; } heap[i] = node; // install saved node }
private void downHeap() { int i = 1; T node = heap[i]; // save top node int j = i << 1; // find smaller child int k = j + 1; if (k <= size && lessThan(heap[k], heap[j])) { j = k; } while (j <= size && lessThan(heap[j], node)) { heap[i] = heap[j]; // shift up child i = j; j = i << 1; k = j + 1; if (k <= size && lessThan(heap[k], heap[j])) { j = k; } } heap[i] = node; // install saved node }
private void downHeap() { int i = 1; T node = heap[i]; // save top node int j = i << 1; // find smaller child int k = j + 1; if (k <= size && lessThan(heap[k], heap[j])) { j = k; } while (j <= size && lessThan(heap[j], node)) { heap[i] = heap[j]; // shift up child i = j; j = i << 1; k = j + 1; if (k <= size && lessThan(heap[k], heap[j])) { j = k; } } heap[i] = node; // install saved node }
private void downHeap() { int i = 1; T node = heap[i]; // save top node int j = i << 1; // find smaller child int k = j + 1; if (k <= size && lessThan(heap[k], heap[j])) { j = k; } while (j <= size && lessThan(heap[j], node)) { heap[i] = heap[j]; // shift up child i = j; j = i << 1; k = j + 1; if (k <= size && lessThan(heap[k], heap[j])) { j = k; } } heap[i] = node; // install saved node }
private void downHeap() { int i = 1; T node = heap[i]; // save top node int j = i << 1; // find smaller child int k = j + 1; if (k <= size && lessThan(heap[k], heap[j])) { j = k; } while (j <= size && lessThan(heap[j], node)) { heap[i] = heap[j]; // shift up child i = j; j = i << 1; k = j + 1; if (k <= size && lessThan(heap[k], heap[j])) { j = k; } } heap[i] = node; // install saved node }
/** * Adds element to the PriorityQueue in log(size) time if either the * PriorityQueue is not full, or not lessThan(element, top()). * * @param element * The element to insert, * @return True, if element is added, false otherwise. */ public boolean offer(T element) { if (size < capacity) { put(element); return true; } else if (size > 0 && !lessThan(element, peek())) { heap[1] = element; adjustTop(); return true; } else { return false; } }
/** * Adds element to the PriorityQueue in log(size) time if either the * PriorityQueue is not full, or not lessThan(element, top()). * * @param element * The element to insert, * @return True, if element is added, false otherwise. */ public boolean offer(T element) { if (size < capacity) { put(element); return true; } else if (size > 0 && !lessThan(element, peek())) { heap[1] = element; adjustTop(); return true; } else { return false; } }
/** * Adds element to the PriorityQueue in log(size) time if either the * PriorityQueue is not full, or not lessThan(element, top()). * * @param element * The element to insert, * @return True, if element is added, false otherwise. */ public boolean offer(T element) { if (size < capacity) { put(element); return true; } else if (size > 0 && !lessThan(element, peek())) { heap[1] = element; adjustTop(); return true; } else { return false; } }
/** * Adds element to the PriorityQueue in log(size) time if either the * PriorityQueue is not full, or not lessThan(element, top()). * * @param element * The element to insert, * @return True, if element is added, false otherwise. */ public boolean offer(T element) { if (size < capacity) { put(element); return true; } else if (size > 0 && !lessThan(element, peek())) { heap[1] = element; adjustTop(); return true; } else { return false; } }