
数据结构
torvalds_29
这个作者很懒,什么都没留下…
展开
-
二叉查找树(排序树 搜索树 )
二叉查找树(排序树 搜索树 )二叉查找树定义二叉查找树的时间复杂度二叉查找树的三种遍历方式。1.先序遍历2.中序遍历3.后序遍历二叉查找树定义(一)若左子树不为空,则左子树上所有节点的值都小于它的根节点的值。(二)若右子树不为空,则右子树上所有节点的值都大于它的根节点的值。(三)左右子树也分别是二叉排序树。(四)没有键值相等的节点。二叉查找树的时间复杂度如果一棵二叉查找树是平衡的,则...原创 2019-01-03 20:36:46 · 476 阅读 · 0 评论 -
AVL树
AVL树AVL树就是平衡二叉树,平衡二叉树的每个节点左右子树的高度差不超过1.AVL树每个节点都有高度,节点的高度为左右子树的最高高度加1,节点在新增或删除时递归维护每个节点的高度,每次旋转也都需要维护节点的高度。AVL树是否需要旋转以及旋转方式都跟平衡因子相关,平衡因子为节点左子树的高度减去右子树的高度。平衡二叉树的查询复杂度为O(Log2n),当往平衡二叉树添加或删除节点时有可能会破坏平衡...原创 2019-01-03 20:46:33 · 265 阅读 · 0 评论 -
红黑树
红黑树红黑树性质红黑树新增调整红黑树:红黑树性质除了二叉树的基本条件以外,红黑树还具有以下性质。1.所有节点都是红色或是黑色。2.根节点是黑色。3.子叶节点(NIL)节点是黑色。(空节点)4.红节点的子节点必须是黑色。5.从任意一个节点处发到其每个叶节点路径,黑节点数量是相等的。红黑树的第1与第5个性质决定了红黑树每个节点到子叶的最长路径不超过最短路径的2倍,节点到子叶的最短路径...原创 2019-01-03 20:50:26 · 188 阅读 · 0 评论 -
B树(B-树) B+树
B树(B-树) B+树B树定义B树的使用场景B树定义对于一颗M阶B树具有以下性质1.根节点的子节点数为[2,M]。2.除根节点与叶节点外的节点子节点数数为[M/2,M]。3.除根节点每个节点都存放数据个数为[M/2-1,M-1],升序存储。4.非叶节点存储数据个数为指向子节点指针数-1.5.所有的叶节点都在同一层。B树的使用场景在数据存储中,AVL树与红黑树的查询时间都是相对低...原创 2019-01-03 20:58:12 · 393 阅读 · 0 评论 -
跳表 skipList
skipList跳表是一个多层有序链表,与红黑树都用于列表排序,在写操作较多,并发写场景下红黑树结构会产生严重的性能问题,为保持红黑树性质,需要对整个树进行加锁,并且需要翻转节点来维持平衡。跳表在这种情况下比较有优势,跳表的平均时间复杂度为log(n),与红黑树相差不大,在频繁写或并发写只需要维护节点两端的链接关系,消耗较小。跳表的层级是在一定范围内随机的,不需要严格维护层级数。redis的z...原创 2019-01-03 20:59:57 · 231 阅读 · 0 评论