欢迎来到天天文库
浏览记录
ID:49465613
大小:20.50 KB
页数:4页
时间:2020-03-01
《数据结构C语言实现二叉树三种遍历.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验课题一:将下图中的二叉树用二叉链表表示:ABCDEFGH1用三种遍历算法遍历该二叉树,给出对应的输出结果;2写一个函数对二叉树搜索,若给出一个结点,根据其是否属于该树,输出true或者false。3写函数完成习题4.31(C++版)或4.28(C版教科书)。#include"stdio.h"#include"malloc.h"typedefstructBiTNode{chardata;structBiTNode*lchild,*rchild;}BiTNode,*BiTree;BiTreeCreate(BiTreeT){char
2、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);}returnT;}intnode(BiTreeT){intsum1=0,a,b;if(T){if(T!=NULL)精选范本,供参考!sum1++;a=node(T->lchild);sum1+=a;b=node(T->rchild);sum1+=b;
3、}returnsum1;}intmnode(BiTreeT){intsum2=0,e,f;if(T){if((T->lchild!=NULL)&&(T->rchild!=NULL))sum2++;e=mnode(T->lchild);sum2+=e;f=mnode(T->rchild);sum2+=f;}returnsum2;}voidPreorder(BiTreeT){if(T){printf("%c",T->data);Preorder(T->lchild);Preorder(T->rchild);}}intSumleaf(B
4、iTreeT){intsum=0,m,n;if(T){if((!T->lchild)&&(!T->rchild))sum++;m=Sumleaf(T->lchild);sum+=m;n=Sumleaf(T->rchild);sum+=n;}returnsum;精选范本,供参考!}voidzhongxu(BiTreeT){if(T){zhongxu(T->lchild);printf("%c",T->data);zhongxu(T->rchild);}}voidhouxu(BiTreeT){if(T){houxu(T->lchild
5、);houxu(T->rchild);printf("%c",T->data);}}main(){BiTreeT;intsum,sum1,sum3;printf("请输入字符串:");T=Create(T);printf("前序遍历:");Preorder(T);printf("");printf("中序遍历:");zhongxu(T);printf("");printf("后序遍历:");houxu(T);printf("");sum=Sumleaf(T);printf("树叶数为:");prin
6、tf("%d",sum);printf("");printf("树结点数为:");sum1=node(T);printf("");printf("%d",sum1);printf("");printf("树满结点数为:");精选范本,供参考!sum3=mnode(T);printf("%d",sum3);printf("");}【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】精选范本,供参考!
此文档下载收益归作者所有