数据结构相关

刷剑指offer编程题时发现一些基本概念有点蒙啦,记录一下数据结构的一些东西,方便复习应用

二叉树

结点的度:结点拥有的子树的数目

叶子结点:度为0的结点

分支结点:度不为0的结点

树的度:树中结点的最大的度

层次:根结点的层次为1,其余结点的层次等于该结点的双亲结点的层次加1

树的高度:树中结点的最大层次

森林:0个或多个不相交的树组成。对森林加上一个根,森林即成为树;删去根,树即成为森林。

二叉搜索树

对于树中的每个节点X,它的左子树中所有关键字值小于X的关键字值,而它的右子树中所有关键字值大于X的关键字值

即中序遍历(左根右)结果为一个单调递增的结果

平衡二叉树

平衡树,即平衡二叉树,具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
在这里插入图片描述

满二叉树

定义:高度为h,并且由2h-1个结点组成的二叉树,称为满二叉树
数据结构相关_第1张图片

完全二叉树

定义:一棵二叉树中,只有最下面两层结点的度可以小于2,并且最下层的叶结点集中在靠左的若干位置上,这样的二叉树称为完全二叉树。
数据结构相关_第2张图片

树的遍历 详解链接

前序遍历-根左右
中序遍历-左根右
后序遍历-左右根

根据前序遍历中序遍历推导树的结构、根据树的中序遍历后序遍历推导树的结构 详细讲解

 

链表

详细讲解
注意 区分nodenode.val

链表和数组的区别:

两者的区别:

数组静态分配内存,链表动态分配内存。
数组在内存中是连续的,链表是不连续的。
数组利用下标定位,查找的时间复杂度是O(1),链表通过遍历定位元素,查找的时间复杂度是O(N)。
数组插入和删除需要移动其他元素,时间复杂度是O(N),链表的插入或删除不需要移动其他元素,时间复杂度是O(1)。
 
 

JS查找算法

https://www.cnblogs.com/zhuochong/p/11641247.html

JS排序算法

https://www.cnblogs.com/AlbertP/p/10847627.html

https://www.cnblogs.com/ihboy/p/9799259.html

 
 
 
参考:
https://blog.csdn.net/xcy1193068639/article/details/81034537
https://blog.csdn.net/Shuffle_Ts/article/details/95055467

你可能感兴趣的:(前端基础)