算法
微星星
这个作者很懒,什么都没留下…
展开
-
数据结构和算法-树与二叉树
树树形结构是一种非线性数据结构。树中的每个部分称为结点,结点间存在分支结构与层次关系。每个树型结构都有一个根节点。根据结点之间的关系,也存在父节点、子节点、兄弟结点的概念。不含子节点的结点称为叶结点。子树:对某个结点与其后代结点的整体称呼。由于存在父子关系,树中的结点形成多级结构,称为层级。根节点层级为1,向下依次递增。树中最深结点的层级称为树的高度。二叉树二叉树是树形结构中的一种,二叉树中的每个结点最多只能存在2个子节点。左子节点、右子节点、左子树、右子树满二叉树二叉树的每层原创 2021-09-16 13:47:08 · 226 阅读 · 0 评论 -
算法与数据结构-链表的概念
链表的概念 链表是有序的数据结构,链表中的每个部分称为节点。链表可以从首、尾、中间进行数据存取。链表的元素在内存中不必是连续的空间。添加与删除不会导致其余元素位移。链表的实现 /**节点类:value/next*链表类:addAtTail、addAtHead、addAtIndex、get、removeAtIndex*/// 节点类class LinkedNode { constructor (value) { this.value = value // 用于存储下一个原创 2021-09-15 20:33:06 · 152 阅读 · 0 评论 -
数据结构与算法-队列
队列的概念先进先出原则的有序集合添加新元素的一端称为队尾,另一端称为队首队列的实现// 数组形式class Queue { constructor () { // 用于存储队列数据 this.queue = [] this.count = 0 } // 入队方法 enQueue (item) { this.queue[this.count++] = item } // 出队方法 deQueue () { if (this.isEm原创 2021-09-15 15:08:40 · 80 阅读 · 0 评论 -
数据结构与算法-栈
栈栈的概念后进先出的有序集合栈的实现// An highlighted blockclass Stack { constructor () { // 存储栈的数据 this.data = {} // 记录栈的数据个数(相当于数组的 length) this.count = 0 } // push() 入栈方法 push (item) { // 方式1:数组方法 push 添加 // this.data.push(item) /原创 2021-09-15 10:00:21 · 74 阅读 · 0 评论 -
手写js题目
1.数组扁平化1.reduce方法function flutter(arr,num){ console.log(num) if(num<=0){return arr} return arr.reduce((sum,item)=>{ return sum.concat(Array.isArray(item)?flutter(item,--num):item) },[])} var a=[1,2,3,4,[1,2,3,4,[5,6,7,[1,2]]],[2,3,4]]原创 2021-09-14 17:45:30 · 112 阅读 · 0 评论 -
算法题目面试
1.斐波那契数列function fibonacci(n){ if(n==1||n=0) return 1 return fibonacci(n-1)+fibonacci(n-2)}2.合并二维有序数组成一维有序数组<script> const arr=[] function concatArray(arr1,arr2){ let i=j=0 while(i<arr1.length||j<arr2.length){ if(arr1[i]<原创 2021-08-23 19:39:44 · 84 阅读 · 0 评论 -
算法之数组路径转成对象路径
<script> const pathList = [ '/a/b', '/a/2/c', '/d' ] const root = {} construct(pathList, root) function construct(pathList, root) { pathList.forEach(key => {.原创 2021-08-19 22:52:30 · 209 阅读 · 0 评论 -
算法-数组扁平化
数组扁平化1.toString方法<script> var arr=[1, [2, 3, [4]]] function flatten(arr){ return arr.toString().split(',').map(function(item){ return parseInt(item); }) } flatten(arr)</script>2.es6展开运算符其中还会用到Array.isArray方法,a原创 2021-08-19 10:33:06 · 76 阅读 · 0 评论