代码改变世界

js模拟栈

2018-06-14 09:24  muamaker  阅读(359)  评论(0编辑  收藏  举报

栈:先入后出,后入先出

链表:先入先出,后入后出

 

下面使用js实现栈

	var Stack = (function(){
		var items = new WeakMap();
		//先入后出,后入先出
		class Stack{
			constructor(){
				items.set(this,[]);
			}
			push(ele){
				//入栈
				var ls = items.get(this);
				ls.push(ele);
			}
			pop(){
				//出栈
				var ls = items.get(this);
				return ls.pop();
			}
			size(){
				//获取栈的长度
				var ls = items.get(this);
				return ls.length;
			}
			print(){
				//打印栈
				var ls = items.get(this);
				return ls.toString();
			}
		}
		return Stack;
	})();

	var stack = new Stack();
	stack.push(1);
	console.log(stack.print());
	console.log(stack.size());