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