Метод pop класса BinaryHeap
Метод pop извлекает наибольший элемент
из бинарной кучи BinaryHeap и возвращает
его в виде Option. Если куча не пуста,
возвращается Some с максимальным
значением, а сам элемент удаляется из кучи.
Если куча пуста, метод возвращает None.
Параметров метод не принимает.
Синтаксис
heap.pop()
Пример
Давайте создадим бинарную кучу из чисел и извлечём из неё максимальный элемент:
use std::collections::BinaryHeap;
fn main()
{
let mut heap = BinaryHeap::from(vec![1, 2, 3, 4, 5]);
let res = heap.pop();
println!("{:?}", res);
println!("{:?}", heap);
}
Результат выполнения кода:
Some(5)
[4, 2, 3, 1]
Пример
Давайте попробуем извлечь элемент из пустой бинарной кучи:
use std::collections::BinaryHeap;
fn main()
{
let mut heap: BinaryHeap<i32> = BinaryHeap::new();
let res = heap.pop();
println!("{:?}", res);
}
Результат выполнения кода:
None
Пример
Давайте извлечём все элементы из бинарной кучи в порядке убывания:
use std::collections::BinaryHeap;
fn main()
{
let mut heap = BinaryHeap::from(vec![1, 2, 3, 4, 5]);
while let Some(x) = heap.pop() {
println!("{}", x);
}
}
Результат выполнения кода:
5
4
3
2
1
Смотрите также
-
метод
push,
который добавляет элемент в бинарную кучу -
метод
peek,
который возвращает ссылку на максимальный элемент без его удаления -
метод
new,
который создаёт пустую бинарную кучу -
класс
BinaryHeap,
который представляет собой бинарную кучу