| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 620 人关注过本帖
标题:一般人不要进来啊,这个错误可不要改啊,呵呵
只看楼主 加入收藏
wsjmt2334031
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2004-11-17
收藏
 问题点数:0 回复次数:8 
一般人不要进来啊,这个错误可不要改啊,呵呵
这里有一个二叉树的建立和遍历的算法(递归),怎么就是有错误呢!
我是没着了,各位高手,大侠帮帮忙。(用c,turboc2.0)
#include"stdio.h"
#define OVERFLOW -1
#define NULL 0
#define Telemtype char
typedef struct BiTNode{
Telemtype data;
struct BiTNode *lchild,*rchild;
}BiTNode,*Bitree;
Bitree CreateBiTree(Bitree T);
void Travel(Bitree T);
Bitree CreateBiTree(Bitree T)
{
char ch;
printf("Input the data of ch\n");
scanf("%c",&ch);
fflush(stdin);
if(ch==' ')
T=NULL;
else
{
if(!(T=(Bitree)malloc(sizeof(BiTNode))))
exit(OVERFLOW);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return(T);
}
void Travel(Bitree T)
{
if(T==NULL)
return;
else
{
printf("%c\n",T->data);
Travel(T->lchild);
Travel(T->rchild);
}
return ;
}
main()
{
Bitree T;
T=CreateBiTree(T);
Travel(T);
return;
}
2006-05-23 11:59
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
"一般人不要进来啊,这个错误可不改啊,呵呵"




等"论坛"来给你改.他一定行的

[此贴子已经被作者于2006-5-23 12:13:00编辑过]


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-05-23 12:03
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
楼上的,我就这么愿意当冤大头啊

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-23 13:20
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 

好象不是很难诶

#include "stdio.h"
#define OVERFLOW -1
#define NULL 0
#define Telemtype char

typedef struct BiTNode
{
Telemtype data;
struct BiTNode *lchild,*rchild;
}BiTNode,*Bitree;

void CreateBiTree(Bitree *T);
void Travel(Bitree T);

void CreateBiTree(Bitree *T)
{
char ch;

printf("Enter ch:\n");
fflush(stdin);
scanf("%c",&ch);
if(ch==' ')
{
*T=NULL;
}
else
{
if((*T=(Bitree)malloc(sizeof(BiTNode))) == NULL)
{
exit(OVERFLOW);
}
(*T)->data=ch;
(*T)->lchild = (*T)-> rchild = NULL;

CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}
void Travel(Bitree T)
{
if(T)
{
printf("%c ",T->data);
Travel(T->lchild);
Travel(T->rchild);
}
}
main()
{
Bitree T = NULL;

CreateBiTree(&T);

Travel(T);

getch();
}



日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-24 00:06
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
这怎么不象给他找错.好象就是你自己写的..他的错在哪.写出来.我好也看看..

&(*T) 和 T 有区别吗?

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-05-24 00:33
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
以下是引用wsjmt2334031在2006-5-23 11:59:00的发言:
这里有一个二叉树的建立和遍历的算法(递归),怎么就是有错误呢!
我是没着了,各位高手,大侠帮帮忙。(用c,turboc2.0)
#include"stdio.h"
#define OVERFLOW -1
#define NULL 0
#define Telemtype char
typedef struct BiTNode{
Telemtype data;
struct BiTNode *lchild,*rchild;
}BiTNode,*Bitree;
Bitree CreateBiTree(Bitree T);
void Travel(Bitree T);
Bitree CreateBiTree(Bitree T)
{
char ch;
printf("Input the data of ch\n"); /* 这里也是个问题,ch能不能读取字符是个问题*/
scanf("%c",&ch);
fflush(stdin);
if(ch==' ')
T=NULL;
else
{
if(!(T=(Bitree)malloc(sizeof(BiTNode))))
exit(OVERFLOW);
T->data=ch; /* 这里少T->lchild = T->rchild = NULL*/
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return(T);  /* 这里最为严重,至于为什么不能返回,我也说不清*/
}
void Travel(Bitree T)
{
if(T==NULL)  /* 这里也是个问题,可能提前结束打印*/
return;
else
{
printf("%c\n",T->data);
Travel(T->lchild);
Travel(T->rchild);
}
return ;
}
main()
{
Bitree T;
T=CreateBiTree(T);
Travel(T);
return;
}

[此贴子已经被作者于2006-5-24 0:51:32编辑过]


日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-24 00:50
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
&(*T) 和 T 有区别吗?

我明白了.形参的原因!


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-05-24 00:51
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
为什么不能返回T啊, 知道不知道,我记得好象也可以返回啊

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-24 00:55
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

T返回了.可只有一个根结点

根本原因是因为LZ没有用二级指针.而造成建立树不成功.所以返回的结点只有一个.就是根结点..

所以我说不要这么用指针.真的太乱了.错误很难排查.

看来你俩的算法一样.都是一本书吧!


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-05-24 02:50
快速回复:一般人不要进来啊,这个错误可不要改啊,呵呵
数据加载中...
 
   



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

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