通过先序和中序确定树:先序确定填入顺序;中序确定填入位置
    通过后序和中序确定树:后续确定填入顺序(从后往前);中序确定位置
    线索化:左上右下;左边指向上一个,右边指向下一个
    堆排序:根变了下滤,叶变了上滤;在堆排序中,交换最大节点于堆尾节点后,是对大小n-1的堆进行下滤,即把最末端的最大节点从排序中剔除,避免干扰。
    优先级队列:注意从0还是从1开始,无法确定前3大的数是不是下标为0、1、2,只能确定0、1、2中含有前两大的数。
    B树:
    插入:
    1、插入
    2、循环{
    判断是否会分裂;是:上浮;不是:break
    }
    删除
    1、判断是否为叶节点;不是:和后继交换
    2、删除
    3、是否破坏B树;
    是:{
    兄弟节点是否够借;(可视为父节点下沉,判断兄弟节点是否可以上浮,可上浮则上浮+子树左旋;不可上浮则合并兄弟节点:B树唯一可以减小树高的机会)
    是:父节点下沉,被借节点上浮,被借节点边缘子树左/右旋至父节点下
    否:父节点下沉至兄弟节点处,视作对父节点删除,回到2
    }
    否:pass
    散列表扩容时:是找两倍(多)于当前表长(质数)的质数
    入栈顺序已定,计算出栈顺序个数:迭代,如:4个数进栈,分解为:2(一个既定位+3个数进栈)+2(两个既定位+2个数进栈)=25+22=14
    循环队列的front和rear指针指向的空间是已经存了数据的
    快排最差情况:一次只能排一个(即:逆序排序)
    森林遍历:转为二叉树遍历
    树遍历:转为二叉树遍历:先根=先序;后根=中序
    AOE:对完成拓扑排序的邻接表进行遍历,判断以当前事件为中介点时,能否使下一事件开始的时间延迟(事件的开始,要求其前置活动全部完成);逆序遍历,判断以当前事件为中介点时,之前事件触发的事件最晚时间是多少(关键路径的长度-其他点到中介点的路径长度)

    编程:利用二叉树后缀表示构造二叉树;下滤;上滤;线索化树