数据结构学习记录_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):最大层次;
hello world~