当前位置: 代码迷 >> C语言 >> 我的程序问题出在哪里
  详细解决方案

我的程序问题出在哪里

热度:113   发布时间:2006-05-07 21:37:00.0

不好意思,我没有学过C,只学过C++,现在的教材是C 版本的,搞得现在用的有点乱,C和C++好像大部分差不多把


----------------解决方案--------------------------------------------------------

你这程序问题满多的

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

int leaf = 0;
char ch;
typedef int TElemType;
typedef struct BiTNode
{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;

void CreateBiTree(BiTree &T)//生成二叉树
{
scanf("%c", &ch);
if(ch == ' ')
{
T = NULL;
}
else
{
if(!(T = (BiTNode *)malloc(sizeof(BiTNode))))
{
exit(1);
}
T -> data = ch; //生成根节点
CreateBiTree(T -> lchild);//生成左子树
CreateBiTree(T -> rchild);//生成右子树
}
}

void mid( BiTree root) //中序遍历并打印结点
{

if (root != NULL)
{
mid(root ->lchild);
printf("%c ", root -> data);
mid(root -> rchild);
}
}


void LeafNum( BiTree root)//统计叶子节点个数
{
if(root!=NULL)
{
LeafNum(root->lchild);
if(root->lchild == NULL && root->rchild == NULL)
{
leaf += 1;
}
LeafNum(root->rchild);
}
}

int main()
{
BiTree Q;

printf("Enter ch: ");
CreateBiTree(Q);
mid(Q);
LeafNum(Q);

printf("\nleaf = %d\n", leaf);

getch();
return 0;
}

对找下


----------------解决方案--------------------------------------------------------
大哥,好像还不能按我想的运行出结果啊
----------------解决方案--------------------------------------------------------
怎么可能, 我刚试完,你输入:fa空格空格d空格空格,输入fad,叶子2个,怎么可能不对.


----------------解决方案--------------------------------------------------------

Enter ch: fa d
a f d
leaf = 2


----------------解决方案--------------------------------------------------------
恩,可以了,谢谢了
----------------解决方案--------------------------------------------------------
回复:(论坛)Enter ch: fa da f dleaf = 2
以下是引用论坛在2006-5-7 21:53:00的发言:

Enter ch: fa d
a f d
leaf = 2

10步之内,必有芳草。想不到论坛树大根深
抓紧爬树,否则我就“望树兴叹”了。


----------------解决方案--------------------------------------------------------
楼上,贬我呢
----------------解决方案--------------------------------------------------------

  相关解决方案