线索二叉树--二叉树线索化

遍历二叉树是对非线性结构进行线性化操做,在获得的访问序列中,每一个节点都只有一个直接前去和一个直接后继。指针

引入线索二叉树能够加快查找前去于后继节点的速度,实质就是将二叉链表中的空指针改成指向前驱或者后继的线索,线索话就是在遍历中修改空指针。二叉树

一般规定:对某一结点,若无左子树,将lchild指向前驱结点;若无右子树,将rchild指向后继结点。遍历

还须要设置左右两个tag,用来标记当前是否有子树。链表

若tag == 1,lchild指向结点前去;若rtag == 1,rchild指向结点后继。data

线索二叉树的存储结构以下:struct

typedef struct TreadNode{tag

    Elemtype data;

    struct TreadNode *lchild, *rchild;

    int ltag,rtag;

}ThreadNode, *ThreadNode;

相关文章
相关标签/搜索