Вы можете реализовать стек, используя приоритетную очередь (скажем, PQ) , используя min heap . Вам нужна одна дополнительная целочисленная переменная (скажем, t) . « t » будет использоваться в качестве приоритета при вставке / удалении элементов из PQ.
Вы должны инициализировать t (скажем, t = 100) некоторым значением при запуске.
push(int element){
PQ.insert(t,element);
t--; //decrease priority value(less priority will be popped first)
}
pop(){
return PQ.deleteMin();
}
peek(){
return PQ.min();
}
Примечание : Вы также можете использовать системное время для проталкивания элементов в соответствии с приоритетом.
push(int element){
PQ.insert(-getTime(),element); //negative of sys time(less priority will be popped first)
}