点击(此处)折叠或打开
-
typedef struct BiThrNode
-
{
-
char data;
-
struct BiThrNode *lchild, *rchild;
-
PointerTag LTag;
-
PointerTag RTag;
-
}BiThrNode, *BiThrTree;
-
-
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;
-
pre->rchild=p;
-
}
-
pre=p;
-
InThreading(p->rchild);
-
}
-
}
-
-
bool InOrderTraverse_Thr(BiThrTree T) //遍历
-
{
-
BiThrTree p;
-
p=T->lchild;
-
while(p!=T)
-
{
-
while(p->LTag==Link)
-
{
-
p=p->lchild;
-
}
-
cout<<p->data;
-
while(p->RTag==Thread&&p->rchild!=T)
-
{
-
p=p->rchild;
-
cout<<p->data;
-
}
-
p=p->rchild;
-
}
-
return true;
- }
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29012686/viewspace-1145881/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29012686/viewspace-1145881/
本文介绍了一种特殊的二叉树——二叉线索树的构造方法及其中序遍历算法。首先定义了二叉线索树的数据结构,并通过递归的方式实现了中序线索化过程。随后提供了一种高效的中序遍历算法,该算法利用线索化的特性,无需使用堆栈即可完成遍历。
980

被折叠的 条评论
为什么被折叠?



