补全代码补全代码拜托了

4.已知线索二树中的结点类型 TBTNode的声明下
typedef struct node
ElemType data
数据域
int Itag. rtag
左、右线索标志域
struct node Ichild左孩子链域或指向前驱的线索
struct node rchild:右孩子链域或指向后继的线索
TBTNode;
完成下面的算法,实现在中序线索二叉树中找结点p的中序前驱,返回前驱结点的指针

(1)inprior(TBTNode*p)中序线索二叉树中找结点p的直接前驱
(2)
if(p->ltag==1) pre=p->lchild:
else
(3)
while(pre->rtag==0)
(4)
return pre;

TBTNode* inprior(TBTNode *p) {
    TBTNode* pre;
    pre = p;
    if (pre->ltag == 1) {
        pre = pre->lchild;
        return pre ;
    }
    else{
        pre = pre->lchild;//进入左子树
        while (pre->rTag == 0) {
            pre = pre->rchild;
        }//找到左子树的最右边结点
        return pre;
    }
}