数据结构学习记录_2019.02.27

*第三讲 数(上)[何钦铭] by中国大学生MOOC

*3.1 树与数的表示

  • 事务间层次性的关系,管理上更加的高效
  • 数据管理的基本方式:查找
  • 查找

(1)静态查找:记录是固定的

方法1:顺序查找(循环中设立哨兵,哨兵一般设置为数组的边界,用于减少循环条件)(效率低)(时间复杂度:O(N))

方法2:二分查找:有序排序,且必须放到数组里面(不可放到链表里面)(二分查找改变left\right的时候应该mid+1或mid-1,不可直接用mid)(时间复杂度:O(logN))

(2)动态查找:除查找,还可能发生插入和删除

  • 二分查找判定树:

*每个结点需要的查找次数刚好为该结点所在的层数

*查找成功时查找次数不会超过判定树的深度;

*N个结点的判定树的深度为[log2^N]+1;

*ASL:平均查找次数;

*二分查找比任何比例的查找效率更高;

*查找树的优点之一:当在树里面插入、删除结点的时候,比在数组中插入、删除要方便的多;

  • 树的定义

*n个结点构成的有限集合;

*n==0的时候,称为空树,否则称为非空树;

*“根”的特殊结点用 r 表示;

*往下则为子树;

*除了根节点外,每个结点有且仅有一个父结点,一个N个结点树有N-1条边;

  • 树的一些基本术语

*1.结点的度(Degree):结点的子树的个数;

*2.树的度:树的所有结点中最大的度数;

*3.叶结点(Leaf):度为0的结点;

*4.父结点(Parent):有子树的结点是其子树的根节点的父结点;

*5.子结点(Child):相对于父结点,也称为孩子结点;

*6.兄弟结点(Sibling):具有同一父结点的各结点彼此间是兄弟结点;

*7.祖先结点,子孙结点:。。。

*8.结点的层次(Level):规定根节点层次为1,其余以此类推;

*9.树的深度(Depth):最大层次;

posted @ 2019-02-27 17:08  Bran_don  阅读(156)  评论(0编辑  收藏  举报