Lines Matching refs:link
93 void _MoveUp(HeapLink<Element, Key>* link);
94 void _MoveDown(HeapLink<Element, Key>* link);
211 HeapLink<Element, Key>* link = sGetLink(element);
213 ASSERT(link->fIndex >= 0 && link->fIndex < fLastElement);
214 Key oldKey = link->fKey;
215 link->fKey = newKey;
218 _MoveUp(link);
220 _MoveDown(link);
232 HeapLink<Element, Key>* link = sGetLink(element);
233 ASSERT(link->fIndex != -1);
234 link->fIndex = -1;
259 HeapLink<Element, Key>* link = sGetLink(element);
261 ASSERT(link->fIndex == -1);
264 link->fIndex = fLastElement++;
265 link->fKey = key;
266 _MoveUp(link);
293 HEAP_CLASS_NAME::_MoveUp(HeapLink<Element, Key>* link)
296 int parent = (link->fIndex - 1) / 2;
297 if (link->fIndex > 0
298 && sCompare(link->fKey, sGetLink(fElements[parent])->fKey)) {
300 sGetLink(fElements[parent])->fIndex = link->fIndex;
302 Element* element = fElements[link->fIndex];
303 fElements[link->fIndex] = fElements[parent];
306 link->fIndex = parent;
315 HEAP_CLASS_NAME::_MoveDown(HeapLink<Element, Key>* link)
320 current = link->fIndex;
322 int child = 2 * link->fIndex + 1;
324 && sCompare(sGetLink(fElements[child])->fKey, link->fKey)) {
328 child = 2 * link->fIndex + 2;
335 if (link->fIndex == current)
338 sGetLink(fElements[current])->fIndex = link->fIndex;
340 Element* element = fElements[link->fIndex];
341 fElements[link->fIndex] = fElements[current];
344 link->fIndex = current;