{ (g) /? /? /? /? /[1][g] | dequeEmpty } { (item) (g) /[item]/[dequeEmpty]/[item]/[dequeEmpty]/[0][g] | dequeSingle } { (isEmpty)(lPopped)(lItem)(rPopped)(rItem) [lPopped] | dequeLPopped } { (isEmpty)(lPopped)(lItem)(rPopped)(rItem) [lItem] | dequeLItem } { (isEmpty)(lPopped)(lItem)(rPopped)(rItem) [rPopped] | dequeRPopped } { (isEmpty)(lPopped)(lItem)(rPopped)(rItem) [rItem] | dequeRItem } { /(dequeLPush) (deque)(item) /(isEmpty)(lPopped)(lItem)(rPopped)(rItem) / (g) /[rItem]//[item]/[deque]/[0] [g] / /[item][dequeSingle] [isEmpty] [deque] [YC] | dequeLPush } { /(dequeRPush) (deque)(item) /(isEmpty)(lPopped)(lItem)(rPopped)(rItem) / (g) /[item]/[deque]/[lItem]//[0] [g] / /[item][dequeSingle] [isEmpty] [deque] [YC] | dequeRPush } { (_0)(_1)(_add) /(dequeLength) (isEmpty)(lPopped)(lItem)(rPopped)(rItem) / / /[dequeLength][lPopped] / [_1] [_add] / [_0] [isEmpty] [YC] | dequeLLength } { (_0)(_1)(_add) /(dequeLength) (isEmpty)(lPopped)(lItem)(rPopped)(rItem) / / /[dequeLength][rPopped] / [_1] [_add] / [_0] [isEmpty] [YC] | dequeRLength }