MinHeap.d.ts 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. import { Comparator } from '../../../java/util/Comparator';
  2. import { JavaIterator } from '../../../java/util/JavaIterator';
  3. import { Collection } from '../../../java/util/Collection';
  4. import { Cloneable } from '../../../java/lang/Cloneable';
  5. import { JavaObject } from '../../../java/lang/JavaObject';
  6. import { Queue } from '../../../java/util/Queue';
  7. export declare class MinHeap<T> extends JavaObject implements Queue<T>, Cloneable {
  8. private _size;
  9. private _nodes;
  10. private readonly _comparator;
  11. private readonly _initialCapacity;
  12. protected _modCount: number;
  13. /**
  14. * Erzeugt einen neuen Minimum-Heap mit dem übergebenen {@link Comparator} und
  15. * der übergebenen initialen Kapazität.
  16. *
  17. * @param comparator das Objekt zum Vergleich von zwei Objekten des Typ T
  18. * @param initialCapacity die initiale Kapazität des Baums
  19. */
  20. constructor(comparator: Comparator<T>, initialCapacity: number);
  21. /**
  22. * Erzeugt einen neuen Minimum-Heap mit dem übergebenen {@link Comparator} und
  23. * einer initialen Kapazität von 63.
  24. *
  25. * @param comparator das Objekt zum Vergleich von zwei Objekten des Typ T
  26. */
  27. constructor(comparator: Comparator<T>);
  28. /**
  29. * Erstellt eine Kopie des als Parameter übergebenen Heaps.
  30. *
  31. * @param original Das zu kopierende Original
  32. */
  33. constructor(original: MinHeap<T>);
  34. add(e: T): boolean;
  35. element(): T;
  36. offer(e: T): boolean;
  37. peek(): T | null;
  38. poll(): T | null;
  39. remove(): T;
  40. remove(o: unknown | null): boolean;
  41. size(): number;
  42. isEmpty(): boolean;
  43. contains(o: unknown | null): boolean;
  44. containsAll(c: Collection<unknown> | null): boolean;
  45. addAll(c: Collection<T> | null): boolean;
  46. removeAll(c: Collection<unknown> | null): boolean;
  47. retainAll(c: Collection<unknown> | null): boolean;
  48. clear(): void;
  49. toArray(): Array<unknown>;
  50. toArray<U>(a: Array<U>): Array<U>;
  51. iterator(): JavaIterator<T>;
  52. clone(): unknown;
  53. /**
  54. * Gibt den {@link Comparator} des Minimum Heaps zurück.
  55. *
  56. * @return der Comparator
  57. */
  58. comparator(): Comparator<T>;
  59. /**
  60. * Gibt die aktuelle Kapazität des Arrays zurück.
  61. *
  62. * @return die aktuelle Kapazität des Arrays zurück
  63. */
  64. capacity(): number;
  65. /**
  66. * Gibt den Inhalt des Minimum Heaps in einem sortierten Array zurück.
  67. *
  68. * @return ein sortiertes Array mit den Elementen des Minimum Heaps.
  69. */
  70. toSortedArray(): Array<T>;
  71. /**
  72. * Gibt den Inhalt des Heaps als Array-Repräsentation aus.
  73. *
  74. * @return der Inhalt des Heaps
  75. */
  76. toString(): String;
  77. /**
  78. * Ermittelt eine Hash-Code für dieses Objekt basierend auf den gespeicherten
  79. * Daten im Heap (die konkrete Ordnung des Baumes wird nicht unterschieden).
  80. *
  81. * @return der Hashcode des Minimum Heaps
  82. */
  83. hashCode(): number;
  84. /**
  85. * Prüft, ob das übergebene Objekt ein Minimum-Heap ist, der
  86. * die gleichen Elemente mit der gleichen Ordnung beinhaltet.
  87. *
  88. * @param obj das zu vergleichende Objekt
  89. */
  90. equals(obj: unknown | null): boolean;
  91. /**
  92. * Liefert zum Index i den Index des Elter zurück.
  93. *
  94. * @param i
  95. *
  96. * @return den Index des Elter
  97. */
  98. private static getParentIndex;
  99. /**
  100. * Liefert zum Index i den Index des linken Kindes zurück.
  101. *
  102. * @param i
  103. *
  104. * @return den Index des linken Kindes
  105. */
  106. private static getLeftChildIndex;
  107. /**
  108. * Liefert zum Index i den Index des rechten Kindes zurück.
  109. *
  110. * @param i
  111. *
  112. * @return den Index des rechten Kindes
  113. */
  114. private static getRightChildIndex;
  115. /**
  116. * Tauscht die Elemente an den Stellen i und j im Array
  117. *
  118. * @param i
  119. * @param j
  120. */
  121. private swap;
  122. /**
  123. * Stellt die Minimum Heap Eigenschaft vom Index i aus im Baum abwärts her.
  124. *
  125. * @param i ab diesem Index wird im Baum abwärts geprüft.
  126. */
  127. private heapifyDown;
  128. /**
  129. * Stellt die Minimum-Heap-Eigenschaft des Arrays ab Position i aufwärts wieder her.
  130. *
  131. * @param i ab diesem Index wird überprüft
  132. */
  133. private heapifyUp;
  134. /**
  135. * Erstellt ein neues Array vom Typ T mit der angegebenen Länge.
  136. *
  137. * @param elem Ein Element vom Typ T, welches als Vorlage für die Elemente des Arrays dient
  138. * @param length die Länge des neuen Arrays
  139. *
  140. * @return das neue Array
  141. */
  142. private newArray;
  143. /**
  144. * Erzeugt eine Kopie des internen Arrays _nodes.
  145. *
  146. * @return die Kopie des _nodes-Array.
  147. */
  148. private copyNodes;
  149. /**
  150. * Lässt den dem Baum zu Grunde liegenden Baum wachsen. Verdoppelt die Menge der Elemente, die im Heap
  151. * gespeichert werden können.
  152. *
  153. * Falls der Heap durch das Wachsen auf mehr als {@link Integer.MAX_VALUE} Elemente ansteigen würde,
  154. * wird eine IllegalStateException geworfen.
  155. *
  156. * @throws IllegalStateException
  157. */
  158. private grow;
  159. /**
  160. * Findet den Index an dem das Element t im dem dem Heap zu Grunde liegendem Array gespeichert ist.
  161. * Gibt -1 zurück, falls das Element nicht vorhanden ist.
  162. *
  163. * @param t zu diesem Element soll der Index gefunden werden
  164. *
  165. * @return der Index, falls das Element enthalten ist, ansonsten -1
  166. */
  167. private findIndex;
  168. /**
  169. * Gibt die Anzahl der Operationen zurück, die diese Datenstruktur
  170. * verändert haben.
  171. *
  172. * @return die Anzahl der Operationen
  173. */
  174. getModCount(): number;
  175. isTranspiledInstanceOf(name: string): boolean;
  176. [Symbol.iterator](): Iterator<T>;
  177. }
  178. export declare function cast_de_nrw_schule_svws_core_adt_tree_MinHeap<T>(obj: unknown): MinHeap<T>;