Навбат бо ҳадди ақал
Навбат бо ҳадди ақал
Вазифа
Амалӣ кардани навбат, ки се амалиётро дастгирӣ мекунад:
push(x)— илова кардани элемент ба охирpop()— нест кардани элемент аз оғозget_min()— гирифтани элементи минималӣ
Ҳамаи амалиётҳо бояд бо O(1) амортизатсионӣ кор кунанд.
Ғоя
Навбатро метавон бо ёрии ду стек амалӣ кард:
in— стек барои илова кардани элементҳоout— стек барои нест кардани элементҳо
Агар ҳар ду стек тавонанд минимумро дастгирӣ кунанд (MinStack),
пас минимуми тамоми навбат баробар аст:
Чӣ тавр ин кор мекунад
Илова кардан (push)
Элементро ба стек in илова мекунем.
Нест кардан (pop)
Агар стек out холӣ бошад:
- ҳамаи элементҳоро аз
inбаoutмегузаронем - ҳангоми гузаронидан тартиб худкор баръакс мешавад
Баъд аз ин элементро аз out нест мекунем.
Гирифтани минимум (get_min)
- агар як стек холӣ бошад — минимумро аз дигараш мегирем
- агар ҳар ду холӣ набошанд — минимумро аз дуто мегирем