typedef struct ThreadNode { ElemType data; struct ThreadNode *lchild, *rchild; int ltag, rtag; } ThreadNode, *ThreadTree;
void InThread(ThreadTree &p, ThreadTree &pre) { if (p != nullptr) { InThread(p->lchild, pre); if (p->lchild == nullptr) { p->lchild = pre; p->ltag = 1; } if (pre != nullptr && pre->rchild == nullptr) { pre->rchild = p; pre->rtag = 1; } pre = p; InThread(pre->rchild, pre); } }
void CreateInThread(ThreadTree T) { ThreadTree pre = nullptr; if (T != nullptr) { InThread(T, pre); pre->rchild = nullptr; pre->rtag = 1; } }
|