数据结构-线索二叉树(二)

2015-07-24 10:32:36 · 作者: · 浏览: 8
接前驱或直接后继。 此外,在线索二叉树上进行某种遍历比在一般的二叉树上进行这种遍历要容易得多,不需要设置堆栈,且算法十分简洁。
/* 中序遍历二叉线索树T(头结点)的非递归算法 */
Status InOrderTraverse_Thr(BiThrTree T)
{ 
    BiThrTree p;
    p=T->lchild;   /* p指向根结点 */
    while(p!=T)  /* 空树或遍历结束时,p==T */
    {      while(p->
LTag==Link) p=p->lchild; //当LTag==0时循环到中序序列第一个结点 visit(p->data); while(p->RTag==Thread&&p->rchild!=T) { p=p->rchild; visit(p->data); /* 访问后继结点 */ } p=p->rchild; } return OK; }