roya (52) - el mayor binario montón montículo binario

heap binario (Inglés: heap binario) es una pila especial, montón binario es un árbol binario completo o aproximadamente el árbol binario completo. Binarios pila montón satisface características: clave de nodo padre se mantiene siempre una secuencia fija una relación de clave para cualquier nodos secundarios, cada nodo en el subárbol y el subárbol izquierdo y derecho es un montón binario.

Cuando la tecla del nodo padre es siempre mayor que o igual a cualquier tecla en el nodo hijo es un "montón máxima." Cuando la llave del nodo padre es siempre menor o igual a cualquier tecla en el nodo hijo es un "montón mínimo."

None
Some(90)
[90, 87, 61, 69, 31, 9, 23, 11]


------------------
(program exited with code: 0)

请按任意键继续. . .
use std::collections::BinaryHeap;
fn main() {
    let mut my_heap=BinaryHeap::new();
    println!("{:?}",my_heap.peek());
    let x=[11,31,9,87,90,61,23,69];
    for i in &x{
		my_heap.push(i);
	}
    println!("{:?}",my_heap.peek());
    println!("{:?}",my_heap);	
}

montón binario se representa generalmente por una matriz. Si la posición del nodo raíz es un nodo hijo de la matriz 1, la n-ésima posiciones, respectivamente 2n y 2n + 1. Por lo tanto, la primera posición de los sub-nodos 2 y 3, la segunda posición de los sub-nodos 4 y 5. Y así sucesivamente. almacenamiento de una matriz tales basa fácil encontrar los nodos principales y secundarios.

Si las matrices de almacenamiento basados ​​en un índice 0, entonces el siguiente nodos secundarios etiquetados nodo i es 2i + 1 y 2i + 2; nodo padre subíndice es ⌊floor ((i - 1) / 2) ⌋. piso de función (x) es el mayor número entero función "abajo redondeado", o "abajo redondeado", tomando es decir, no mayor que x (el "redondeo" diferente, redondeado hacia abajo de acuerdo con el número es el acceso más directo a eje cerca del valor requerido del valor de la izquierda, que no es mayor que el valor máximo del valor requerido). Por ejemplo piso (1.1), suelo (1.9) devuelve 1.

Dos pilas de la figura siguiente:


            1                                 11                          
         /      \                          /      \ 
       2         3                       9         10
    /    \     /   \                   /   \     /    \ 
   4      5   6     7                5      6   7      8
  / \    / \                        / \    / \
 8  9   10 11                      1   2  3   4 

Los dos montón almacenado en una matriz comienza en 1 en:

Localización: 1234567891011
Izquierda: 1234567891011
Derecha: 1191056781234
Con una gran pila, la cual almacenamiento es ineficiente. Dado que los niños del nodo es probable que en otra página de memoria. memoria B-montón es una manera más eficiente, cada subárbol en la misma página de memoria.

Si lista de punteros de memoria heap, el método requiere el acceso a un nodo hoja. árbol binario puede modo de "rosca" (roscado) para recorrer secuencialmente estos nodos.

Publicados 473 artículos originales · elogios ganado 14 · Vistas a 60000 +

Supongo que te gusta

Origin blog.csdn.net/AI_LX/article/details/105082901
Recomendado
Clasificación