欢迎来到天天文库
浏览记录
ID:1994691
大小:23.68 KB
页数:4页
时间:2017-11-14
《二叉树的查找,遍历,(满)节点数,树叶的计算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验课题一:将下图中的二叉树用二叉链表表示:ABCDEFGH1用三种遍历算法遍历该二叉树,给出对应的输出结果;2写一个函数对二叉树搜索,若给出一个结点,根据其是否属于该树,输出true或者false。3写函数完成习题4.31(C++版)或4.28(C版教科书)。#include"stdio.h"#include"stdlib.h"typedefcharElementtype;typedefstructtreenode*Tree;structtreenode{ElementtypeElement;TreeLeft;Tre
2、eRight;};voidPre(Treet){if(t!=NULL){printf("%c",t->Element);Pre(t->Left);Pre(t->Right);}}voidAft(Treet){if(t!=NULL){Pre(t->Left);Pre(t->Right);printf("%c",t->Element);}voidMid(Treet){if(t!=NULL){Pre(t->Left);printf("%c",t->Element);Pre(t->Right);}}}Treecreat(Tre
3、et){charc;t=(Tree)malloc(sizeof(structtreenode));if((c=getchar())!='#'){t->Element=c;t->Left=Pre();t->Right=Pre();}elset=NULL;returnt;}intcountnode(TreeT){if(T==NULL)return0;elsereturn1+countnode(T->Left)+countnode(T->Right);}intcountleaf(TreeT){if(T==NULL)retur
4、n0;elseif(T->Left==NULL&&T->Right==NULL)return1;returncountleaf(T->Left)+countleaf(T->Right);}intcountfull(TreeT){if(T==NULL)return0;elsereturn!(T->Left==NULL
5、
6、T->Right==NULL)+countfull(T->Left)+countfull(T->Right);}intFind(TreeT,charc;){intfind;if(!find&&T!=NUL
7、L){if(T->Element==c){find=1;}else{Find(T->Left,c);Find(T->Right,c);}}returnfind;}voidmain(){TreeT;charc;T=creat(T);printf("前序遍历为:");Pre(T);printf("");printf("中序遍历为:");Mid(T);printf("");printf("后序遍历为:");Aft(T);printf("");printf("请输入要检测的字符:");scanf("%c
8、",&c);getchar();if(Find(T,c)==1)printf("True该字符在树中!");elseprintf("False该字符不在树中!");printf("树中的节点数为:%d",ountnode(T));printf("树中的树叶数为:%d",ountleaf(T));printf("树中的满节点数为:%d",countfull(T));}
此文档下载收益归作者所有