Czy częściowy porządek, w przeciwieństwie do całkowitego porządku, wystarczy, by zbudować kupę?

C ++ std :: priority_queue wymaga tylko częściowej kolejności. Ale jeśli jego realizacja jeststerta binarna, jak to działa? Na przykład: załóżmy, że mamy zestaw częściowo uporządkowany( {a, b, c, x}, {c < b, b < a, c < a} ), x nie ma z tym nic wspólnegoa, b, c. Wtedy maksymalna kupa to:

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

Po operacji pop, w sposób powszechnie spotykany w podręcznikach, tj. Zastąpienie roota przezc i zmniejsz rozmiar o 1. Następnie musimy skropić drzewo poniżej, w katalogu głównym:

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

Zamienimy sięc ib tak jakc < b, prawda? I co? Od tego czasu nadal nie mamy prawidłowej stertyb < a. Aleb nie można zobaczyć"a.

questionAnswers(1)

yourAnswerToTheQuestion