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

我的程序问题出在哪里

热度:223   发布时间:2006-05-07 21:15:00.0
我的程序问题出在哪里

#include"iostream.h"
#include"stdio.h"
#include"stdlib.h"

# define OVERFLOW -2

char ch;
typedef int TElemType;

typedef struct BiTNode{ TElemType data;
struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;

void CreateBiTree(BiTree &T)//生成二叉树
{ printf("无效的插入位置!\n");
cin>>ch;
if(ch==' ') T=NULL;
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))) exit(OVERFLOW);
T->data=ch; //生成根节点
CreateBiTree(T->lchild);//生成左子树
CreateBiTree(T->rchild);//生成右子树
}
}

void mid( BiTNode *root) //先序遍历并打印结点
{ printf("无效位置!\n");

if (root!=NULL){ mid(root->lchild);

printf( "root->data");

mid(root->rchild); }
}


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

int main()
{ BiTree Q;

CreateBiTree(Q);
mid(Q);
LeafNum(Q);
return 0;}

搜索更多相关的解决方案: 二叉树  include  

----------------解决方案--------------------------------------------------------
cin>>ch;

这是什么
----------------解决方案--------------------------------------------------------
提示输入CH值啊
----------------解决方案--------------------------------------------------------
void mid( BiTNode *root) //先序遍历并打印结点
{ printf("无效位置!\n");

if (root!=NULL){ mid(root->lchild);

printf( "root->data");

mid(root->rchild); }


先序遍历是这个样子吗
----------------解决方案--------------------------------------------------------
老大啊,这是C论坛,你起码改成C的啊
----------------解决方案--------------------------------------------------------

后面先序遍历和统计叶子节点个数函数好像不运行,


----------------解决方案--------------------------------------------------------
你等下
----------------解决方案--------------------------------------------------------
你那是中序啊
----------------解决方案--------------------------------------------------------


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

# define OVERFLOW -2

char ch;
typedef int TElemType;

typedef struct BiTNode{ TElemType data;
struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;

void CreateBiTree(BiTree &T)//生成二叉树
{ printf("无效的插入位置!\n");
scanf(&ch);
if(ch==' ') T=NULL;
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))) exit(OVERFLOW);
T->data=ch; //生成根节点
CreateBiTree(T->lchild);//生成左子树
CreateBiTree(T->rchild);//生成右子树
}
}

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

if (root!=NULL){ mid(root->lchild);

printf( "root->data");

mid(root->rchild); }
}


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

int main()
{ BiTree Q;

CreateBiTree(Q);
mid(Q);
LeafNum(Q);
return 0;}


----------------解决方案--------------------------------------------------------
我晕,你用的还是引用方式
----------------解决方案--------------------------------------------------------
  相关解决方案