数据结构day19

C语言数据结构代码练习day19

中序线索二叉树中序遍历

#include <stdio.h>
#include <stdlib.h>

typedef struct BiNode{
    int data;       //二叉树存储数据
    int ltag,rtag;      //定义左右线索
    struct BiNode *lchild, *rchild;     //左孩子指针和右孩子指针
}BiNode,*BiTree;      //二叉树结点、二叉树指针


/*找到以p为根的树第一个中序遍历的结点*/
BiNode *Firstnode(BiNode *p){       
    while (p->ltag==0)p=p->lchild;
    return p;
}

/*中序线索二叉树寻找中序后继*/
BiNode *NextNode(BiNode *p){
    if(p->rtag==0) return Firstnode(p->rchild);
    else return p->rchild;
}

/*中序线索二叉树进行中序遍历*/
void Inorder(BiNode *T){
    for(BiNode *p=Firstnode(T);p!=NULL;p=NextNode(p))
        printf("%d",p->data);       //访问结点
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值