其他分享
首页 > 其他分享> > 【JS小白】对栈的学习和思考

【JS小白】对栈的学习和思考

作者:互联网

栈的概念

参考:https://www.jianshu.com/p/d43f726e7dce

只有一个口子,既能进入也能出来。

抛弃过去学习的记忆内容,还能想到的栈的操作一般有以下:

增加但没有返回值:push

删除并返回被删除的元素:pop

长度:size()、size、length

然后还有几个,平时总是记不住,只有用到才去想到:

js表示栈

简单的话,就不去封装成一个引用类型了,直接用功能强大的数组来表示栈。

var stack = [];

stack.push(1);
stack.push(2);

console.log(stack.pop());

stack = [];//clear

stack.push(3);
stack.push(4);
stack.push(5);
var len = stack.length;
var top = stack[len-1]

var empty = stack.length === 0
debugger

尽管方法、属性的名字没有统一和固定,但是功能都能相应去实现。


然后就是专门定义一个引用数据类型表示栈:

function Stack(){
	this.data=[]
}

Stack.prototype={
	push:........略
}

不过其内部仍然是用数组来表示。

虽然js定义的栈不像后端语言在定义栈时的比较基础,但是重点是学习栈的结构和解决问题的思路。


那么栈有什么样的用处呢?
复杂的、高深的,我也不懂。

仅从对栈后进先出,先进后出的感官上来看,就是栈的使用,是为了按非线性的、非随机的、但又特定的某个顺序来访问数据。

一般情况下,数组只能顺序访问或随机访问,链表只能顺序访问。
那么非线性的结构,树、图,它们如果要按某个特定顺序遍历的话,栈或许就能“规范”它们的遍历顺序了。

标签:对栈,顺序,访问,length,JS,var,小白,push,stack
来源: https://www.cnblogs.com/redcode/p/16357673.html