|
122 | 122 | Queue<Integer> minHeap = new PriorityQueue<>(); |
123 | 123 | // 初始化大顶堆(使用 lambda 表达式修改 Comparator 即可) |
124 | 124 | Queue<Integer> maxHeap = new PriorityQueue<>((a, b) -> b - a); |
125 | | - |
| 125 | + |
126 | 126 | /* 元素入堆 */ |
127 | 127 | maxHeap.offer(1); |
128 | 128 | maxHeap.offer(3); |
129 | 129 | maxHeap.offer(2); |
130 | 130 | maxHeap.offer(5); |
131 | 131 | maxHeap.offer(4); |
132 | | - |
| 132 | + |
133 | 133 | /* 获取堆顶元素 */ |
134 | 134 | int peek = maxHeap.peek(); // 5 |
135 | | - |
| 135 | + |
136 | 136 | /* 堆顶元素出堆 */ |
137 | 137 | // 出堆元素会形成一个从大到小的序列 |
138 | 138 | peek = maxHeap.poll(); // 5 |
139 | 139 | peek = maxHeap.poll(); // 4 |
140 | 140 | peek = maxHeap.poll(); // 3 |
141 | 141 | peek = maxHeap.poll(); // 2 |
142 | 142 | peek = maxHeap.poll(); // 1 |
143 | | - |
| 143 | + |
144 | 144 | /* 获取堆大小 */ |
145 | 145 | int size = maxHeap.size(); |
146 | | - |
| 146 | + |
147 | 147 | /* 判断堆是否为空 */ |
148 | 148 | boolean isEmpty = maxHeap.isEmpty(); |
149 | | - |
| 149 | + |
150 | 150 | /* 输入列表并建堆 */ |
151 | 151 | minHeap = new PriorityQueue<>(Arrays.asList(1, 3, 2, 5, 4)); |
152 | 152 | ``` |
|
337 | 337 | max_heap.push(2); |
338 | 338 | max_heap.push(5); |
339 | 339 | max_heap.push(4); |
340 | | - |
| 340 | + |
341 | 341 | /* 获取堆顶元素 */ |
342 | 342 | let peek = max_heap.peek().unwrap(); // 5 |
343 | 343 |
|
|
373 | 373 | var minHeap = PriorityQueue<Int>() |
374 | 374 | // 初始化大顶堆(使用 lambda 表达式修改 Comparator 即可) |
375 | 375 | val maxHeap = PriorityQueue { a: Int, b: Int -> b - a } |
376 | | - |
| 376 | + |
377 | 377 | /* 元素入堆 */ |
378 | 378 | maxHeap.offer(1) |
379 | 379 | maxHeap.offer(3) |
380 | 380 | maxHeap.offer(2) |
381 | 381 | maxHeap.offer(5) |
382 | 382 | maxHeap.offer(4) |
383 | | - |
| 383 | + |
384 | 384 | /* 获取堆顶元素 */ |
385 | 385 | var peek = maxHeap.peek() // 5 |
386 | | - |
| 386 | + |
387 | 387 | /* 堆顶元素出堆 */ |
388 | 388 | // 出堆元素会形成一个从大到小的序列 |
389 | 389 | peek = maxHeap.poll() // 5 |
390 | 390 | peek = maxHeap.poll() // 4 |
391 | 391 | peek = maxHeap.poll() // 3 |
392 | 392 | peek = maxHeap.poll() // 2 |
393 | 393 | peek = maxHeap.poll() // 1 |
394 | | - |
| 394 | + |
395 | 395 | /* 获取堆大小 */ |
396 | 396 | val size = maxHeap.size |
397 | | - |
| 397 | + |
398 | 398 | /* 判断堆是否为空 */ |
399 | 399 | val isEmpty = maxHeap.isEmpty() |
400 | | - |
| 400 | + |
401 | 401 | /* 输入列表并建堆 */ |
402 | 402 | minHeap = PriorityQueue(mutableListOf(1, 3, 2, 5, 4)) |
403 | 403 | ``` |
404 | 404 |
|
405 | 405 | === "Ruby" |
406 | 406 |
|
407 | 407 | ```ruby title="heap.rb" |
408 | | - |
| 408 | + # Ruby 未提供内置 Heap 类 |
409 | 409 | ``` |
410 | 410 |
|
411 | 411 | === "Zig" |
|
0 commit comments