¿Es el orden parcial, en contraste con el orden total, suficiente para construir un montón?

C ++ std :: priority_queue solo necesita un orden parcial. Pero si su implementación es unamontón binario, ¿Cómo funciona? Por ejemplo: supongamos que tenemos un conjunto parcialmente ordenado( {a, b, c, x}, {c < b, b < a, c < a} ), x no tiene nada que ver cona, b, c. Entonces un máximo de pila es:

layer 1:    x
layer 2:  b   x
layer 3: x x a c

Después de una operación emergente, de una manera común en los libros de texto, es decir, reemplazar la raíz conc y reduzca el tamaño en 1. Luego necesitamos heapificar el árbol de abajo, en la raíz:

layer 1:    c
layer 2:  b   x
layer 3: x x a

Vamos a cambiarc yb comoc < bnosotros no? ¿Y qué? Todavía no tenemos un montón válido desdeb < a. Perob no pueden ver"a.

Respuestas a la pregunta(1)

Su respuesta a la pregunta