注册 登录
编程论坛 数据结构与算法

请教一段和二叉树相关代码问题

moyi516 发布于 2017-11-17 21:53, 1874 次点击
void demo{BiTree T}
{
//T是根节点,二叉链表中各个结点存的是字符
//已知c是全局变量,初值为0
  if(T){
       if(T->data>='A' && T->data<='Z')
        {c++;
         printf("%c",T->data);}
       demo (T->lchild);
       demo (T->rchild);
      }
}

这段代码的含义是不是,先计算输出小于A大于Z的结点值,再输出左子树结点值,最后输出右子书结点值,整体就是对二叉树进行先序遍历?
2 回复
#2
neeso2017-12-22 12:04
我也刚学二叉树,
应该是的吧,
但是if(T)这句能编译通过?
有点不确定
#3
林月儿2017-12-22 19:22
程序代码:
if(T){
       if(T->data>='A' && T->data<='Z'){
        c++;
        printf("%c",T->data);}
       demo (T->lchild);
       demo (T->rchild);
      }

这不是先序遍历么,不过,是判断是否在A-Z之间,再执行先序遍历。
判断在前,递归在后。
1