数据结构学习笔记——线索二叉树要点精炼

线索二叉树要点精炼

1.由来:二叉树链式存储有“空域链”;借此将分支结构“线性化”,拥有“前驱”和“后继”

2.优势:无系统栈「树的递归遍历算法」、无用户栈「树的非递归遍历算法」、遍历过程线性化,进一步提高效率

3.种类:中序线索二叉树、前序线索二叉树、后续线索二叉树

4.线索二叉树的构造:

    1)线索二叉树结点TBTNode{int rtag,ltag}

    2)线索化:a」中序遍历的框架+合适的线索[分别放置在递归入的前中后]

                         b」线索化规则:需要两个指针「当前结点p和p的前驱结点pre」,第一

                                建立当前结点p的前驱线索,第二建立前驱结点的后继结点;

                               最后中序遍历线索化需要额外注意:最后一个根结点特殊处理;

                               前序遍历需要额外注意:递归入口处需判断左右指针非线索才能继续

                              递归

     3)遍历线索化:a」中序遍历

                                第一个结点First:ltag==0则一直访问左结点

                                最后一个结点Last:rtag==0则一直访问右结点

                                后继结点:rtag==0则先往“右走一步”再一直“往左走First”

                                前驱结点:ltag==0则先往“左走一步”再一直“往右走Last”

                           b」前序二叉树遍历

5.选择题题型:指出某结点的线索按某种线索化所应指向的结点,解题方法即是按遍历规则写出遍历序列,前驱后继一目了然

你可能感兴趣的:(数据结构基础知识,p2p,网络协议,网络)