# queue.nas # valkmjolnir 2021/3/31 var new = func() { var (begin, end) = (nil, nil); return{ push: func(elem) { var new_node = { elem:elem, next:nil }; if (begin == nil) begin = end = new_node; else { end.next = new_node; end = new_node; } }, pop: func() { if (begin != nil) begin = begin.next; if (begin == nil) end = nil; }, front: func() { if (begin != nil) return begin.elem; }, clear: func() { begin = end = nil; }, empty: func() { return begin == nil; } }; }