Нужно иметь объект, в который можно закидывать любые unsigned числа и с «верхушки» этого объекта брать меньшее из имеющихся в нём. Потом это число нужно изменить и дать объекту найти для этого числа новое место - на верхушке оно теперь или десятое от верхушки. То есть, внутри объекта всё должно сортироваться.
Можно взять std::map, std::set, кидать в них числа, они там будут по определению сортироваться.
Но если какой-то узел дерева в этих контейнерах изменить, он сам никуда не переместится, его придётся удалять и вставлять заново. Эта операция удаления-вставки чё-то меня напрягает, не хочу постоянно дёргать аллокатор, т.е. выделение-освобождение памяти. Чисел будет неубывающее количество, преймущественно всегда одно и тоже с редким ростом их числа. Т.е. хочется манипулировать связями между числами, а их особо не месить туда-сюда...
Спасибченко.