美文网首页
算法与数据结构练习中常犯错误2——二叉查找树、红黑树、跳表、tr

算法与数据结构练习中常犯错误2——二叉查找树、红黑树、跳表、tr

作者: 王侦 | 来源:发表于2019-11-29 09:38 被阅读0次

代码实现参见github/algorithm中各个类别下wz包中的代码。

1.数据结构中常犯错误

1.14 二叉查找树

  • 28)对于指针类型的数据结构一定要画图
    通过画图整理好各个结点之间关系的变化
  • 29)对于复杂的操作
    先理清思路,写出完整操作步骤,再写代码,然后再进行优化合并。

1.15 红黑树——最复杂的数据结构

  • 30)忘了更新size
  • 31)对算法的理解,尤其是当结点为null结点时,此时null结点被当作什么至关重要,因为《算法导论》算法假设是null结点有作用的!这个处理参考parentOf()、leftOf()、rightOf()、colorOf()
  • 32)中间容易忘记对结点是否为null进行判断
  • 33)leftRotate()、rightRotate()少了更新xy这一对关系
  • 总结:对于极其复杂的数据结构,建议做到如下几点来控制复杂度
    a.定义清楚算法各种状态含义、前置条件和后置条件
    b.用注释+部分的方式(更新size等状态)勾勒出代码骨架
    c.对代码功能进行模块化拆分
    d.对于链式结构,一定要画图,并检查各修改结点的各状态是否正确被赋值

1.16 跳表

  • 34)将rnd >>>=1错写成rnd>>>1,导致死循环
  • 35)for循环精心的控制,注意要防止null
            for (Index<K,V> prev = head; prev != null; prev = prev.down) {
                // 这一句不能放在for循环更新语句中,只能放在这里,因为prev可能为null,所以只有检查完之后才能赋值
                Index<K,V>  right = prev.right;

1.17 trie树

  • 36)while循环更新变量时,有两个变量需要更新,少更新一个人
  • 37)delete递归方法,后置条件需要定义清楚:结点置为null的充要条件是:value为null且所有孩子结点为null

1.18 三向trie树

  • 38)keysWithPrefix()方法,prefix本身忘记处理
        // prefix本身忘记处理
        if (node.value != null) {
            results.add(prefix);
        }

相关文章

  • 算法与数据结构练习中常犯错误2——二叉查找树、红黑树、跳表、tr

    代码实现参见github/algorithm中各个类别下wz包中的代码。 1.数据结构中常犯错误 1.14 二叉查...

  • 数据结构与算法--散列表

    数据结构与算法--散列表 之前学习了基于链表的顺序查找、基于有序数组的二分查找、二叉查找树、红黑树,这些算法在查找...

  • 数据结构与算法--从平衡二叉树(AVL)到红黑树

    数据结构与算法--从平衡二叉树(AVL)到红黑树 上节学习了二叉查找树。算法的性能取决于树的形状,而树的形状取决于...

  • 揭开红黑树的神秘面纱

    在了解红黑树之前,先了解下查找树与二叉查找树 。 查找树(search tree) 查找树 是一种数据结构,它支持...

  • 二叉树

    参考文章 百度 数据结构中有很多树的结构,其中包括二叉树、二叉搜索树、2-3树、红黑树等等。本文中对数据结构中常见...

  • (5)树相关题目

    树是一种特殊的数据结构,包括二叉树、平衡树、B树、红黑树等众多类型。其定义为 二叉树中常见的算法题目均可以通过迭代...

  • 红黑树笔记

    红黑树笔记 红黑树是平衡二叉查找树的一种。为了深入理解红黑树,我们需要从二叉查找树开始讲起。 BST 二叉查找树(...

  • 红黑树初步理解

    为什么? 为什么要学习红黑树?我们数据结构中学习过二叉查找树,二叉查找树可以增大查找的效率,但是二叉查找树有一个巨...

  • TreeMap

    需要先了解红黑树,这是之前分析红黑树的文章。之前在分析红黑树时,我认为红黑树=二叉查找树+红黑平衡,关于二叉查找树...

  • (313)红黑树-java实现

    引言 根据《算法》第4版。编写红黑树。 理论 参见: 浅谈算法和数据结构: 八 平衡查找树之2-3树 浅谈算法和数...

网友评论

      本文标题:算法与数据结构练习中常犯错误2——二叉查找树、红黑树、跳表、tr

      本文链接:https://www.haomeiwen.com/subject/fupvwctx.html