| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 678 人关注过本帖
标题:先序递归建一个二叉树出现的问题?
只看楼主 加入收藏
yuesheng
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-4-21
收藏
 问题点数:0 回复次数:3 
先序递归建一个二叉树出现的问题?

#include<stdio.h>
#include<stdlib.h>
#define SIZE 23
typedef struct BiTNode
{char data;
struct BiTNode *Lchild,*Rchild;
}BiTNode,*BiTree;

BiTree creatBiTree(BiTree T)
{char ch;
BiTree T0;
printf("input the datas:\n");
scanf("%c",&ch);
if(ch=='#') T0=NULL;
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))) exit(0);
T->data=ch;
creatBiTree(T->Lchild);
creatBiTree(T->Rchild);
T0=T;
}
return(T0);
}


大侠们,看下哪里出了问题?

[此贴子已经被作者于2007-5-13 17:06:42编辑过]

搜索更多相关主题的帖子: 二叉树 递归 BiTNode BiTree 
2007-05-13 15:38
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

对照一下我的链表帖看一下.
估计是传参数的问题.


倚天照海花无数,流水高山心自知。
2007-05-13 21:43
yuesheng
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-4-21
收藏
得分:0 
回复:(nuciewth)对照一下我的链表帖看一下.[em01]估...

多谢版主,为什么建树的时候非要用指向指针的指针啊?不能直接用指针的吗?

2007-05-15 11:48
yuesheng
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-4-21
收藏
得分:0 

#include<stdio.h>
#include<stdlib.h>
#define SIZE 23
typedef struct BiTNode
{char data;
struct BiTNode *Lchild,*Rchild;
}BiTNode,*BiTree;

void creatBiTree(BiTree *T)
{char ch;
scanf("%c",&ch);
if(ch==' ') T=NULL;
else{(*T)=(BiTNode *)malloc(sizeof(BiTNode));
(*T)->data=ch;
creatBiTree(&(*T)->Lchild);
creatBiTree(&(*T)->Rchild);
}
}

void Ctraverse(BiTree T)
{BiTree V[SIZE],p;
int front=0,area=0;
if(T!=NULL)
{area++;
V[area]=T;
while(front<area)
{front++;
p=V[front];
printf("%c",p->data);
if(p->Lchild!=NULL) {area++;V[area]=p->Lchild;}
if(p->Rchild!=NULL) {area++;V[area]=p->Rchild;}
}
}
}

void main()
{BiTree T;
creatBiTree(&T);
Ctraverse(T);
system("PAUSE");
}





版主,看下我这个结果会输出来,但后面为什么会出现一些乱码?

2007-05-15 12:06
快速回复:先序递归建一个二叉树出现的问题?
数据加载中...
 
   



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

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