线索化

This commit is contained in:
Xu Bai
2019-07-26 22:36:16 +08:00
parent f135253e5f
commit 7ab909dec7

View File

@@ -2,7 +2,7 @@
* @Author: Xu Bai
* @Date: 2019-07-23 22:43:14
* @LastEditors: Xu Bai
* @LastEditTime: 2019-07-25 20:55:15
* @LastEditTime: 2019-07-26 22:36:04
*/
#include "string.h"
#include "stdio.h"
@@ -70,3 +70,31 @@ Status CreateBiThrTree(BiThrNode *T)
return OK;
}
/*全局变量,始终指向刚刚访问的结点 */
BiThrTree pre;
/*中序线索化 */
void InThreading(BiThrTree p)
{
if (p)
{
InThreading(p->lchild);
if (!p->lchild)
{
/*前驱线索 */
p->LTag = Thread;
/*左孩子指针指向前驱 */
p->lchild = pre;
}
if (!pre->rchild)
{
/* 前驱没有右孩子 */
/*后继线索 */
pre->RTag = Thread;
/*前驱右孩子指向后继当前结点p */
pre->rchild = p;
}
/*保持pre指向p的前驱 */
pre = p;
InThreading(p->rchild);
}
}