标题:求助!关于统计二叉树非叶子节点。我编写的可以运行但不能嵌套在switch() ...
只看楼主
memeozn
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-12-29
结帖率:0
已结贴  问题点数:20 回复次数:3 
求助!关于统计二叉树非叶子节点。我编写的可以运行但不能嵌套在switch()上
我是要在switch()上添加几个模块的,但是发现统计二叉树这模块不行。
这算法不能加在条件语句上,if语句我也试过,不行
但是我单独运行它,又是可以的。不知道为什么。希望大家帮帮忙

#include "stdio.h"
#include "malloc.h"
#include "stdlib.h"

typedef struct node{
  char data;
  struct node *lchild,*rchild;
}bitnode,*bitree;/*二叉树结点结构定义*/

bitree creatbitree()
{
  bitree T;
  char ch;
  scanf("%c",&ch);
  if(ch==' ')      T=NULL;
  else{
  if(!(T=(bitnode *)malloc(sizeof(bitnode))))  exit(1);
  T->data=ch;     /*生成根结点*/
  T->lchild=creatbitree();  /*构造左子树*/
  T->rchild=creatbitree(); /*构造右子树*/
     }
  return(T);
}

int count_notleaf(bitree t)
{
if(t==NULL) return(0);
if((t->lchild==NULL)&&(t->rchild==NULL)) return(0);
return(1+count_notleaf(t->lchild)+count_notleaf(t->rchild));
}


void jiedian()
{
int a;   bitree T;
printf("please input di gui xun lie \n");
T=creatbitree();

a=count_notleaf(T);
printf("the num of notleaf is %d",a);
printf("\ninput any key to exit and return the front level");
getch();
}

void main()
{
int choose;
while(1)
{
printf("input 1 to tong ji fei ye zi jie dian");
scanf("%d",&choose);
switch(choose)
 {
 case 1: jiedian();break;
 }
}

}
搜索更多相关主题的帖子: 叶子 节点 嵌套 switch 二叉树 
2009-12-29 19:46
wufei1989121
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:113
注 册:2009-11-13
得分:6 
我看不懂你的问题  不如把你不能运行的程序发来看看 可能好解决问题
2010-01-02 21:52
烈烈水云天
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:56
专家分:33
注 册:2009-12-30
得分:6 
是什么问题啊

爱拼才会赢
2010-01-03 12:52
flylee
Rank: 5Rank: 5
等 级:职业侠客
帖 子:309
专家分:374
注 册:2004-8-10
得分:6 
怎么会不行,把根节点传到count_notleaf()不就可以了吗?楼主把问题说清楚点吧
2010-01-04 19:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-294593-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.313926 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved