
数据结构
文章平均质量分 67
^卿^
他日若是凌云志,敢笑黄巢不丈夫
展开
-
stack
stack stack的原则是先进后出,底层实现也是基于list进行实现。 #ifndef TSTACK_H #define TSTACK_H #include <stdlib.h> #include <string.h> #include <list> #include <stack> using namespace std; template <class T> class TStack { public: TStack();原创 2021-08-11 21:41:51 · 123 阅读 · 0 评论 -
红黑树与平衡二叉树的比较
RB-Tree和AVL树作为BBST,其实现的算法时间复杂度相同,AVL作为最先提出的BBST,貌似RB-tree实现的功能都可以用AVL树是代替,那么为什么还需要引入RB-Tree呢? 红黑树不追求"完全平衡",即不像AVL那样要求节点的|balFact| <= 1,它只要求部分达到平衡,但是提出了为节点增加颜色,红黑是用非严格的平衡来换取增删节点时候旋转次数的降低,任何不平衡都会在三次旋转之内解决,而AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多。 就.转载 2021-03-06 13:24:47 · 1045 阅读 · 0 评论 -
R-B Tree
R-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。 红黑树的特性: (1)每个节点或者是黑色,或者是红色。 (2)根节点是黑色。 (3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!] (4)如果一个节点是红色的,则它的子节点必须是黑色的。 (5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。 注原创 2021-03-06 12:56:06 · 169 阅读 · 0 评论 -
平衡二叉树
文章参考什么是平衡二叉树(AVL) 和 一步一步写平衡二叉树(AVL树) 为什么要有平衡二叉树 二叉搜索树一定程度上可以提高搜索效率,但是当原序列有序时,例如序列 A = {1,2,3,4,5,6},构造二叉搜索树如图 1.1。依据此序列构造的二叉搜索树为右斜树,同时二叉树退化成单链表,搜索效率降低为 O(n)。 在此二叉搜索树中查找元素 6 需要查找 6 次。 二叉搜索树的查找效率取决于树的高度,因此保持树的高度最小,即可保证树的查找效率。同样的序列 A,将其改为下图的方式存储,查找元素 6原创 2021-03-02 17:09:00 · 426 阅读 · 0 评论