47 lines
913 B
Plaintext
47 lines
913 B
Plaintext
# lib queue.nas
|
|
# valkmjolnir 2021/3/31
|
|
var queue=func()
|
|
{
|
|
var _={begin:nil,end: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;
|
|
}
|
|
return;
|
|
},
|
|
pop:func()
|
|
{
|
|
if(_.begin!=nil)
|
|
_.begin=_.begin.next;
|
|
if(_.begin==nil)
|
|
_.end=nil;
|
|
},
|
|
front:func()
|
|
{
|
|
if(_.begin!=nil)
|
|
return _.begin.elem;
|
|
return nil;
|
|
},
|
|
clear:func()
|
|
{
|
|
_.begin=_.end=nil;
|
|
},
|
|
empty:func()
|
|
{
|
|
return _.begin==nil;
|
|
}
|
|
};
|
|
}
|