用户:
yee089查看:0 回复:0 评论:0 创建时间:2022-03-10T14:52:08
讲完数据,就是数据结构了
那么,先讲一些常用的、简单的
——————————————————————————————————————————————————
1、数组(array)
非常普通的数据结构
定义方法:
var a = [1,2,3]//数字数组
var b = ['az','aaa']//字符串数组
var c = new Array(3)//定义数组初始长度为3,也可以用于赋初始值(不推荐)
方法:.length
[i](i是下标,也就是代表数组的第i+1个元素(第一个下标是0))
push()
pop()
shift()
unshift()
示例:
var a = [1,2,3,4,5,6,7,8,9,10];
console.log(a.length)//输出10(数组长度)
console.log(a.pop())//将a的最后一个元素删除,然后返回删除的数之值(输出10)
console.log(a.shift())//将a的第一个元素删除,然后返回删除的数之值(输出1)
a.push(10)//在a最后增加一个10的元素
a.unshift(1)//在a开头增加一个元素1,并将后续元素移动(不常用)
console.lod(a[0])//第一个元素(1)
注意:数组第一个元素的下标是0!!!
—————————————————————————————————————————————————
2、队列(queue)
有一个很高级的缩写和一个接地气的全称
缩写:FIFO表
全称:First In First Out(xxs都看得懂的)
简单地说,就是一种数据结构,只能从最后加元素,前面删除/取出元素
其实还是用数组实现,用shift()和push()就可以了(这样的好处是可以随机访问(bushi)),长度就是length,队首就是queue[0].(提醒:如果觉得要优化时间复杂度,你可以搞一个now变量存队首下标,删除就now++好了,不过要特判now要小于queue.lenth)
经典应用场景:排队(好喵率啊),bfs(话说岛3用得着吗),……
——————————————————————————————————————————————————
栈(stack)
和队列一样,都有一个很高级的缩写和一个接地气的全称
缩写:FILO表
全称:First In Last Out(还是xxs都看得懂的)
第一个提出者是图灵(Turing),为了解决函数调用问题
简单地说,就是一种数据结构,只能从最后加元素,最后面删除/取出元素
其实还是用数组实现,用pop()和push()就可以了(这样的好处是可以随机访问(bushi)),长度就是length,队首就是stack[stack.length-1].
经典应用场景:递归、函数调用(都是泪啊),……
——————————————————————————————————————————————————
作业(凭自觉):1、写一段排队系统:先来的先排到,后来的在到
2、写一段dfs走迷宫啊啊自觉吧,自己连
(自己的贴在岛3分区再发一遍)