Stack . . . New(list/contents, max=-1) ..() maxlen = max if(contents) if(istype(contents)) src.contents = contents else src.contents = new src.contents += contents . . . proc/getTop() return src.contents ? src.contents[length(contents)] : null Queue . . . New(list/contents, max=-1) ..() maxlen = max if(contents) if(istype(contents)) src.contents = contents else src.contents = new src.contents += contents . . . proc/getFront() return src.contents ? src.contents[1] : null . . . proc/getBack() return src.contents ? src.contents[length(src.contents)] : null