- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二叉树c语言的程序代码
# include stdio.h
# include stdlib.h
# include malloc.h
typedef struct Node{
char data; //定义根结点
struct Node *lchild; //定义左子树
struct Node *rchild; //定义右子树
}Node,*BiTree;
int JianShu(BiTree T) { //构造二叉链表表示的二叉树T,按先序遍历输入二
//叉树中结点的值(一个字符),空格字符表示空树.
char e;
T=(Node *)malloc(sizeof(Node)); //开辟一个以sizeof(Node)为单位的空间
if(!T) //开辟失败
exit (-2);
fflush(stdin); //清空缓存
scanf (%c,e);
if(e== )
T=NULL;
else {
T-data=e; // 生成根结点
printf (请输入%c的左孩子:,e);
JianShu(T-lchild); // 构造左子树
printf (请输入%c的右孩子:,e);
JianShu(T-rchild); // 构造右子树
}
return 1;
}
int DLR_P(BiTree T) { //先序遍历打印二叉树中所有数据
if (T!=NULL) { //非空二叉树
printf (%c ,T-data); //访问T
DLR_P(T-lchild); //递归遍历左子树
DLR_P(T-rchild); //递归遍历右子树
}
return 1;
}
int LDR_P(BiTree T) { //中序遍历打印二叉树中所有数据
if (T!=NULL) { //非空二叉树
LDR_P(T-lchild); //递归遍历左子树
printf (%c ,T-data); //访问T
LDR_P(T-rchild); //递归遍历右子树
}
return 1;
}
int LRD_P(BiTree T) { //后序遍历打印二叉树中所有数据
if (T!=NULL) { //非空二叉树
LRD_P(T-lchild); //递归遍历左子树
LRD_P(T-rchild); //递归遍历右子树
printf (%c ,T-data); //访问T
}
return 1;
}
int DLR_0(BiTree T,int s_0) { //用先序遍历求二叉树T中所有叶子总数
if (T!=NULL) { //非空二叉树
if(!T-lchild!T-rchild) { //判断该结点是否为叶子
s_0++; //是叶子则计数并打印
printf (%c ,T-data);
}
DLR_0(T-lchild,s_0); //递归遍??左子树,直到叶子处
DLR_0(T-rchild,s_0); //递归遍历右子树,直到叶子处
}
return s_0;
}
int DLR_1(BiTree T,int s_1) { //用先序遍历求二叉树T中所有1度结点总数
if (T!=NULL) { //非空二叉树
if(T-lchild!T-rchild) { //判断该结点是否为1度结点
s_1++; //是1度结点则计数并打印
文档评论(0)