令我头痛的二叉树

时间:2008-05-21 08:44:55   来源:论坛整理  作者:  编辑:chinaitzhe
要求设计一个算法:先序递归建立二叉树,后序非递归遍历该树,并求出度为1的结点个数.
我自己设计了一个算法可是编译成功了却无法得到正确结果,请大家来帮帮忙,给我一个新的源代码也好,一个新的算法也好,谢谢大家了.
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode
{char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
BiTree Create(BiTree T)
{char ch;
ch=getchar();
if(ch=='#') T=NULL;
else{T=(BiTNode *)malloc(sizeof(BiTNode));
T->data=ch;
T->lchild=Create(T->lchild);
T->rchild=Create(T->rchild);
}
return T;
}
void houxu(BiTree T)
{if(T)
{houxu(T->lchild);
houxu(T->rchild);
printf('%c',T->data);
}
}
int Sumdan(BiTree T)
{int sum=0,m,n;
if(T){ if((!T->lchild&&T->rchild) ¦ ¦(!T->rchild&&T->lchild))
sum ;
m=Sumdan(T->lchild);
sum =m;
n=Sumdan(T->rchild);
sum =n;
}
return sum;
}
main()
{BiTree T;
int sum;
T=Create(T);
houxu(T);
printf('\n');
sum=Sumdan(T);
printf("There is %d one point.\n");
getch();
}
网友回复:输出有问题:
printf("There is %d one point.\n");

修改为:
printf("There is %d one point.\n", sum);
网友回复:错误太多。。


楼主加油


// acm.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include <iostream>

using namespace std;
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode
{char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;


BiTree Create(BiTree T)
{char ch;
ch=getchar();
fflush(stdin);
if(ch=='#') T=NULL;
else{
cout < < "creat a node : " < < ch < < endl;
T=(BiTNode *)malloc(sizeof(BiTNode));
T->data=ch;
T->lchild=Create(T->lchild);
T->rchild=Create(T->rchild);
}
return T;
}
void houxu(BiTree T)
{
if(T)
{houxu(T->lchild);
houxu(T->rchild);
printf("%c",T->data);
}
}
int Sumdan(BiTree T,int &sum)
{
if(T != NULL){
if((T->lchild == NULL&& T->rchild !=NULL) ¦ ¦(T->lchild!= NULL&&T->rchild ==NULL))
{
sum ;
}
Sumdan(T->lchild,sum);

Sumdan(T->rchild,sum);

}
return sum;
}
void main()
{BiTree T = NULL;
int sum =0;
T=Create(T);
houxu(T);
printf("\n");
Sumdan(T,sum);
printf("There is %d one point.\n",sum);
getchar();
}
网友回复:.....
建议:

1:加强基础问题学习.
2:先设计,后编码.
网友回复:额~~~~~我自己居然没发现我犯了这么低级的错误,额~~~~~~~~~~~~~
唉~~~~~~
真的要谢谢了.
关键字:头痛,二叉,

相关文章

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面