树——二叉树的线索化

关于树真的是非常的不好理解,看了很多其他人的博客,修修改改,拼拼凑凑。

为什么要将二叉树线索化?因为它有很多的空指针(n+1个),而每次我们在遍历二叉树的时候想找一个节点的前驱和后继都得把二叉树完全遍历一遍

可是如果有了一个标志,一个关于指向其前驱或者是后继的线索,那么就会高效很多。

typedef char TElemType;
typedef int Status;
typedef enum{
    Link,Thread
}PointerTag;
typedef struct BitNode{
    TElemType data;
    struct BitNode *lchild,*rchild;
    PointerTag LTag,RTag;
}BitNode,*BiTree;

线索化的实质就是将二叉链表中的空指针改为指向前驱或后继的线索

猜你喜欢

转载自www.cnblogs.com/swenw/p/10085152.html