36 lines
806 B
Plaintext
36 lines
806 B
Plaintext
# 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;
|
|
}
|
|
};
|
|
}
|