鱼C论坛

 找回密码
 立即注册
查看: 5584|回复: 14

用递归中序遍历二叉树该如何实现

[复制链接]
发表于 2014-8-4 17:00:24 | 显示全部楼层
  1. // 为了不让你误解我给出我自己版本的书阶段的定义
  2. typedef struct Bitnode
  3. {
  4.      char data;      //树结点存储的值暂且设定为字符型
  5.      struct Bitnode *lchild;
  6.      struct Bitnode *rchild;
  7. }Bitnode;



  8. void qwe(Bitnode *T)   //这里qwe是函数名字你爱什么名就什么名,Bitnode是数结点结构体
  9. {
  10.      if(NULL != T)    //这里也可以if(T <span style="line-height: 1.5;">!= NULL</span><span style="line-height: 1.5;">),是一样的作用,只是个小技巧,有时候自己把x == 2写成x=2很麻烦,但是把2 ==x写成2=x  编译器会报错。</span>
复制代码
我给个遍历的模板给你

void travese(Bitnode *T)
{
      if(NULL  !=  T)
      {
             //1,如果这个位置写对结点的访问  就是前序遍历
            
            travese(T->lchild);
           
            //2, 如果这个位置对结点访问      就是中序遍历

            travese(T->rchild);


             //3, 如果这个位置对结点访问      就是后序遍历
       }
}




小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-8-4 17:04:55 | 显示全部楼层
风骚居士 发表于 2014-8-4 17:00
我给个遍历的模板给你

void travese(Bitnode *T)

void qwe(Bitnode *T)
{
      if( NULL  !=  T )
      {           
            qwe(T->lchild);
            visit(T);
            qwe(T->rchild);
       }
}
void visit(Bitnode* T)
{
            printf("%c",T->data);
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-8-4 17:05:58 | 显示全部楼层
第一份回复出了点问题  , 我重新打了代码上去, 你凑合着看
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-27 16:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表