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