bitree CreatBiTree.docx
- 文档编号:8111643
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:7
- 大小:14.86KB
bitree CreatBiTree.docx
《bitree CreatBiTree.docx》由会员分享,可在线阅读,更多相关《bitree CreatBiTree.docx(7页珍藏版)》请在冰豆网上搜索。
bitreeCreatBiTree
bitreeCreatBiTree()
{
bitreet;
charch;
scanf("%c",&ch);
if(ch=='') t=NULL;
else{
t=(bitnode*)malloc(sizeof(bitnode));
t->data=ch;
t->lchild=CreatBiTree();
t->rchild=CreatBiTree();
}
returnt;
}
<2>,显示二叉树算法:
(以括号的形式显示二叉树)
voidDispTree(bitreet)
{
if(t!
=NULL)
{
printf("%c",t->data);
if(t->lchild!
=NULL)
{
printf("(");
DispTree(t->lchild);
printf(")");
}
else{
printf("(");
printf("()");
}
if(t->rchild!
=NULL)
{
printf(",");
DispTree(t->rchild);
printf(")");
}
}
}
<3>,二叉树先序遍历的递归算法
voidPreOrderTraverse(bitreebt){
if(bt!
=NULL){
printf("%c",bt->data);
PreOrderTraverse(bt->lchild);
PreOrderTraverse(bt->rchild);
}
}
<4>,二叉树中序遍历的递归算法
voidInOrderTraverse(bitreebt){
if(bt!
=NULL){
InOrderTraverse(bt->lchild);
printf("%c",bt->data);
InOrderTraverse(bt->rchild);
}
}
<5>,二叉树后序遍历的递归算法
voidPostOrderTraverse(bitreebt){
if(bt!
=NULL){
PostOrderTraverse(bt->lchild);
PostOrderTraverse(bt->rchild);
printf("%c",bt->data);
}
}
4,算法描述的程序代码:
#include
#include
#defineM50
#defineNULL0
typedefintelemtype;
typedefstructbtnode
{
elemtypedata;
structbtnode*lchild,*rchild;
}bitnode,*bitree;
bitreeCreatBiTree()
{
bitreet;
charch;
scanf("%c",&ch);
if(ch=='') t=NULL;
else{
t=(bitnode*)malloc(sizeof(bitnode));
t->data=ch;
t->lchild=CreatBiTree();
t->rchild=CreatBiTree();
}
returnt;
}
voidDispTree(bitreet)
{
if(t!
=NULL)
{
printf("%c",t->data);
if(t->lchild!
=NULL)
{
printf("(");
DispTree(t->lchild);
printf(")");
}
else{
printf("(");
printf("()");
}
if(t->rchild!
=NULL)
{
printf(",");
DispTree(t->rchild);
printf(")");
}
}
}
voidPreOrderTraverse(bitreebt){
if(bt!
=NULL){
printf("%c",bt->data);
PreOrderTraverse(bt->lchild);
PreOrderTraverse(bt->rchild);
}
}
voidInOrderTraverse(bitreebt){
if(bt!
=NULL){
InOrderTraverse(bt->lchild);
printf("%c",bt->data);
InOrderTraverse(bt->rchild);
}
}
voidPostOrderTraverse(bitreebt){
if(bt!
=NULL){
PostOrderTraverse(bt->lchild);
PostOrderTraverse(bt->rchild);
printf("%c",bt->data);
}
}
intmain(void)
{
bitreet;
clrscr();
t=CreatBiTree();
printf("nn");
DispTree(t);
printf("nn");
printf("AfterPreOrderTraverse()'sorderis:
:
n");
PreOrderTraverse(t);
printf("nAfterInOrderTraverse()'sorderis:
:
n");
InOrderTraverse(t);
printf("nAfterPostOrderTraverse()'sorderis:
:
n");
PostOrderTraverse(t);
return0;
}
5,对程序代码的测试:
6,实验结果分析与评价(该部分不够填写.请填写附页):
A
对二叉树进行输入,输出,先序遍历,中序遍历,后序遍历操作,二叉树如图所示:
B
C
D
E
则输入的字符序列为:
AB━D━━C━E,其中“━”表示空格字符。
输出结果如上图所示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- bitree CreatBiTree
![提示](https://static.bdocx.com/images/bang_tan.gif)