zoukankan      html  css  js  c++  java
  • 树、二叉树、查找算法总结

    一、思维导图

    二、重要概念

    1、二叉树的特殊性质

    • 在二叉树的第i(i>=1)层最多有2^(i - 1)个结点。
    • 对于任一棵非空二叉树,若设其叶结点数为n0,度为2的非叶结点数为n2,则存在n0 = n2 +1。
    • 深度为k(k>=0)的二叉树最少有k个结点,最多有2^k-1个结点。 、
    • 带权路径最短的二叉树称为哈夫曼树或最优二叉树。

    2、二叉树的遍历要点

    • 先序遍历:ABDEC(根左右)
    • 中序遍历:DBEAC(左根右)
    • 后序遍历:DEBCA(左右根)

    3、解决哈希冲突的方法

    a、使用线性探查法时,若遇到冲突,则按顺序向下继续查找,直到发现可以放置的空位为止。

    • 优点:操作简单
    • 缺点:时间复杂度可能会很大

    b、使用拉链发时,若遇到冲突,可以使用链表来处理冲突

    • 解决思想:每个哈希表节点都有一个next指针,多个哈希表节点可以用next指针构成一个单向链表,被分配到同一个索引上的多个节点,都可以用这个单向链表连接在一起。

    三、疑难解惑

    1、查找失败时的ASL计算

    • 在计算散列表的ASL值时,需要确认散列表长度。从待查元素开始,一直查到遇到的“第一个空位”,这算一次失败的查找,查了几次需要计算清楚。

    2、B树/B+树的特征有哪些?在数据库索引中为什么不用二叉树?

    • 查阅资料可知,二叉树的查找速度和比较次数都是最小的,但在实际应用中,我们却更多地使用B树/B+树。
    • 在数据库搜索的实际应用中,我们需要的是一棵“矮胖”的树,即高度小,孩子结点多的树。
  • 相关阅读:
    skynet源代码学习
    白话经典算法系列之七 堆与堆排序
    数据结构与算法二
    [hadoop系列]Pig的安装和简单演示样例
    感动前行——给医学媳妇写的演讲稿(非IT类)
    怎样提高团队管理能力3
    Linux守护进程的编程实现
    人脸识别 开放书籍 下载地址
    Objective-C中经常使用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect
    动态规划整理(两)
  • 原文地址:https://www.cnblogs.com/czrsdsb/p/12782186.html
Copyright © 2011-2022 走看看