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

Метод push

Метод push добавляет элемент в бинарную кучу BinaryHeap. Параметром метод принимает значение, которое нужно добавить в кучу. После добавления куча автоматически перестраивается так, чтобы соблюдалось свойство кучи: максимальный элемент всегда находится на вершине. Метод не возвращает значения.

Класс BinaryHeap реализует максимальную кучу, поэтому на вершине всегда оказывается наибольший элемент согласно реализации трейта Ord.

Синтаксис

heap.push(value)

Пример

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

use std::collections::BinaryHeap; fn main() { let mut heap = BinaryHeap::new(); heap.push(3); heap.push(1); heap.push(4); heap.push(1); heap.push(5); println!("{:?}", heap); }

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

[5, 3, 4, 1, 1]

Пример

Давайте добавим элементы в кучу и извлечём их с помощью метода pop, чтобы убедиться, что элементы возвращаются в порядке убывания:

use std::collections::BinaryHeap; fn main() { let mut heap = BinaryHeap::new(); heap.push(3); heap.push(1); heap.push(4); heap.push(2); while let Some(top) = heap.pop() { println!("{}", top); } }

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

4 3 2 1

Пример

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

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

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

["bcd", "12345", "abcde"]

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

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