bitree CreatBiTree.docx

上传人:b****6 文档编号:8111643 上传时间:2023-01-28 格式:DOCX 页数:7 大小:14.86KB
下载 相关 举报
bitree CreatBiTree.docx_第1页
第1页 / 共7页
bitree CreatBiTree.docx_第2页
第2页 / 共7页
bitree CreatBiTree.docx_第3页
第3页 / 共7页
bitree CreatBiTree.docx_第4页
第4页 / 共7页
bitree CreatBiTree.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

bitree CreatBiTree.docx

《bitree CreatBiTree.docx》由会员分享,可在线阅读,更多相关《bitree CreatBiTree.docx(7页珍藏版)》请在冰豆网上搜索。

bitree CreatBiTree.docx

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,其中“━”表示空格字符。

输出结果如上图所示。

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1