![](https://img-blog.csdnimg.cn/20200809110614652.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JS数据结构
该专栏主要有一些常见的数据结构的讲解及在JS中的实现方法。
hysteria、
这个作者很懒,什么都没留下…
展开
-
JS数据结构之堆
堆一、堆的简介二、堆的实现1、结点数据结构2、插入元素3、删除元素4、判断堆是否为空5、创建堆6、堆排序一、堆的简介堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。大顶堆:每个节点的值都大于或者等于它的左右子节点的值。小顶堆:每个节点的值都小于或者等于它的左右子节点的值。堆的定义如下:n个元素的序列{k1,k2,ki,…,kn}当且原创 2020-07-30 20:16:43 · 740 阅读 · 0 评论 -
JS数据结构之二叉树的基础知识
一、树的基础知识1.树的定义:(1)有且只有一个称为根的节点。(2)有若干个互不相交的子树,这些子树本身也是一棵树。2.通俗的定义:(1)树由节点和边组成。(2)每个节点只有一个父节点但可以有多个子节点。(3)根节点没有父节点。3.树的一些名词:(1)节点:树的节点包含一个数据元素和若干指向其子树的分支(2)深度(高度):从根节点到最低层节点的层数称之为深度,根节点是第一层。(3)孩子与双亲:节点的子树的根称为该节点的孩子,相应的该节点称为孩子的双亲。 (4原创 2020-07-29 16:58:24 · 366 阅读 · 0 评论 -
JS数据结构之二叉树的遍历(递归、非递归)
二叉树的四种遍历方式:二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次。四种遍历方式分别为:先序遍历、中序遍历、后序遍历、层序遍历。...原创 2020-07-29 15:58:35 · 299 阅读 · 0 评论 -
JS数据结构之二叉排序树
二叉排序树一、什么是二叉排序树二、二叉排序树的一些操作1、查找元素1.1递归查找1.1非递归查找2、查找最大节点2.1递归查找最大节点2.2非递归查找最大节点3、查找最小节点3.1递归查找最小节点3.2非递归查找最小节点3、插入节点3.1递归法插入节点3.2非递归插入节点4、删除节点一、什么是二叉排序树二叉排序树也叫二叉查找树,二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若它的左子树不空,则左子树的所有节点的值均小于它的根结点的值。(2)若它的右子树不空,则右子树的所有节点的值原创 2020-07-29 18:52:19 · 361 阅读 · 2 评论 -
JS数据结构之平衡二叉树(AVL树)
AV树的旋转AVL树概念不平衡概况四种平衡旋转方式RL平衡旋转(先右后左双旋转)LR平衡旋转(先左后右单旋转)AVL树概念前面学习二叉查找树和二叉树的各种遍历,但是其查找效率不稳定(斜树),而二叉平衡树的用途更多。查找相比稳定很多。(欢迎关注数据结构专栏)AVL树是带有平衡条件的二叉查找树。这个平衡条件必须要容易保持。而且要保证它的深度是O(logN).AVL的条件是左右树的高度差(平衡因子)不大于1;并且它的每个子树也都是平衡二叉树。对于平衡二叉树的最小个数,n0=0;n1=1;nk=n原创 2020-07-29 23:14:46 · 355 阅读 · 0 评论