猫史档案馆


【JS教程2】数据结构

用户:yee089yee089查看: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分区再发一遍)


回复

上一页1 页 / 共 0下一页