Дек бо минимум
Дек бо ҳадди ақал
Вазифа
Амалӣ кардани дек, ки амалиётҳоро дастгирӣ мекунад:
push_front(x)— ба оғоз илова карданpush_back(x)— ба охир илова карданpop_front()— аз оғоз ҳазф карданpop_back()— аз охир ҳазф карданget_min()— гирифтани элементи минималӣ
Ғоя: ду сохтор (ду MinStack) нигоҳ медорем, аммо ба ҷои «ҳамаро мисли навбатӣ рехтан»
мо мувозинат мекунем, вақте ки яке аз қисмҳо холӣ мешавад (андозаҳоро тақрибан баробар мекунем).
Ғоя
Декро ҳамчун ду қисм нигоҳ медорем:
L(left) — элементҳо наздиктар ба оғоз-и дек (боли стек = front)R(right) — элементҳо наздиктар ба охир-и дек (боли стек = back)
Пас:
frontдар болоиLастbackдар болоиRаст- минимуми дек =
min(L.min, R.min)
Агар ба мо лозим шавад аз як тараф ҳазф кунем, аммо стеки мувофиқ холӣ бошад:
- ҳамаи элементҳоро бо тартиби дуруст ҷамъ мекунем,
- ба ду қисм тақсим мекунем,
- боз бармегардонем, то ки андозаҳои
LваRназдик бошанд.