diff --git a/_04.树/_c.线索二叉树.c b/_04.树/_c.线索二叉树.c index 8639297..cb4e4f4 100644 --- a/_04.树/_c.线索二叉树.c +++ b/_04.树/_c.线索二叉树.c @@ -2,7 +2,7 @@ * @Author: Xu Bai * @Date: 2019-07-23 22:43:14 * @LastEditors: Xu Bai - * @LastEditTime: 2019-07-26 22:36:04 + * @LastEditTime: 2019-07-26 22:43:54 */ #include "string.h" #include "stdio.h" @@ -97,4 +97,35 @@ void InThreading(BiThrTree p) pre = p; InThreading(p->rchild); } +} + +/*Thrtָͷڵ */ +Status InOrderThreading(BiThrTree *Thrt, BiThrTree T) +{ + *Thrt = (BiThrTree)malloc(sizeof(BiThrNode)); + if (!*Thrt) + { + exit(-1); + } + /*ͷڵ */ + (*Thrt)->LTag = Link; + (*Thrt)->RTag = Thread; + /*ָָ */ + (*Thrt)->rchild = (*Thrt); + if (!T) + { + /* գָָ */ + (*Thrt)->lchild = *Thrt; + } + else + { + (*Thrt)->lchild = T; + pre = (*Thrt); + InThreading(T); + pre->rchild = *Thrt; + /*һ */ + pre->RTag = Thread; + (*Thrt)->rchild = pre; + } + return OK; } \ No newline at end of file