数据结构
javascript数据结构,比如常用排序,堆栈,链表,树等等
墨语轩
这个作者很懒,什么都没留下…
展开
-
层序遍历
1、层序遍历基础模板: /** * @param {TreeNode} root * @returns {number[]} */ function levelOrder(root) { if (!root) { return [] } let queue = [root] let res = [] while (queue.length) { let node = queue.shift() res.push(node.val) if (n原创 2021-12-09 00:05:29 · 2211 阅读 · 0 评论 -
javascript实现单链表
首先定义节点类: class Node{ constructor(value){ this.data = value; this.next = null; } } 然后定义单链表类LinkList,涉及到的主要方法有追加、插入、删除。其中插入涉及到从表头,中间,尾部插入。删除也涉及到是表头删除还是其他位置删除。 //链表 class Lin...原创 2019-12-16 15:06:16 · 180 阅读 · 0 评论 -
排序二叉树
定义 一棵空树,或者是具有下列性质的二叉树即排序二叉树 (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树; (4)没有键值相等的结点。 所以我们先定义一个节点类: class Node{ constructor(key){ this.key ...原创 2019-12-25 17:12:31 · 2706 阅读 · 1 评论 -
简单选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个...原创 2019-11-28 15:06:16 · 248 阅读 · 1 评论 -
冒泡排序
冒泡排序:重复的走访过要排序的元素列,一次比较两个相邻的元素,如果他们的顺序(如从小到大)错位就把他们交换过来。走访元素的工作是重复地进行知道没有相邻元素需要交换,也就是说该元素已经完成排序。 冒泡排序算法的原理如下: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3.针对...原创 2019-11-27 14:47:00 · 113 阅读 · 0 评论