РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
274 of 1245 menu

Функция new класса BinaryHeap

Функция new класса BinaryHeap создаёт новую пустую двоичную кучу. Двоичная куча - это структура данных, в которой наибольший элемент всегда находится на вершине. По умолчанию это max-heap, то есть куча упорядочена так, что наибольший элемент извлекается первым. Функция не принимает параметров и возвращает экземпляр BinaryHeap с нулевой ёмкостью.

Для создания кучи с заранее выделенной ёмкостью используйте with_capacity. Для добавления элементов применяйте push, а для извлечения наибольшего - pop или peek.

Синтаксис

BinaryHeap::new()

Пример

Давайте создадим пустую двоичную кучу и проверим, что она пуста:

use std::collections::BinaryHeap; fn main() { let heap: BinaryHeap<i32> = BinaryHeap::new(); println!("is empty: {}", heap.is_empty()); println!("length: {}", heap.len()); }

Результат выполнения кода:

is empty: true length: 0

Пример

Давайте создадим кучу, добавим в неё несколько чисел и извлечём наибольший элемент:

use std::collections::BinaryHeap; fn main() { let mut heap: BinaryHeap<i32> = BinaryHeap::new(); heap.push(3); heap.push(1); heap.push(4); heap.push(2); println!("{:?}", heap); println!("peek: {:?}", heap.peek()); println!("pop: {:?}", heap.pop()); println!("after pop: {:?}", heap); }

Результат выполнения кода:

[4, 2, 3, 1] peek: Some(4) pop: Some(4) after pop: [3, 2, 1]

Пример

Давайте создадим кучу из строк и извлечём наибольшую строку в лексикографическом порядке:

use std::collections::BinaryHeap; fn main() { let mut heap: BinaryHeap<&str> = BinaryHeap::new(); heap.push("abcde"); heap.push("12345"); heap.push("bcd"); println!("peek: {:?}", heap.peek()); println!("pop: {:?}", heap.pop()); println!("pop: {:?}", heap.pop()); }

Результат выполнения кода:

peek: Some("bcd") pop: Some("bcd") pop: Some("abcde")

Смотрите также

  • класс BinaryHeap,
    который представляет двоичную кучу
  • метод push,
    который добавляет элемент в кучу
  • метод pop,
    который извлекает наибольший элемент из кучи
  • метод peek,
    который возвращает ссылку на наибольший элемент без извлечения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить