实验四树和二叉树的建立和应用.docVIP

  • 23
  • 0
  • 约1.68千字
  • 约 5页
  • 2016-08-23 发布于重庆
  • 举报
实验四树和二叉树的建立和应用

实验四 二叉树的建立和应用 1实验目的 (1)熟练掌握树的基本概念、二叉树的基本操作及在链式存储结构上的实现; (2)重点掌握二叉树的生成、遍历及求深度等算法; (3)掌握运用递归方式描述算法及编写递归C程序的方法,提高算法分析和程序设计能力。 2实验内容 从键盘读入字符,建立ABD#G###CE##FH###) ;分别采用先序、中序、后序遍历该二叉树,分别输出遍历结果。 3实验步骤 (1)仔细分析实验内容,给出其算法和流程图; ()用C语言实现该算法; ()给出测试数据,并分析其结果; ()在实验报告册上写出实验过程。测试数据 ABDGCEFHjfkdkfakf 中序序列: DGBAECHF 后序序列: GDBEHFCA 5、结构定义 typedef struct BiTNode { char data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; 6、实验报告要求 实验报告要求书写整齐,步骤完整,实验报告格式如下: 1、[实验目的] 2、[实验设备] 3、[实验步骤] 4、[实验内容] 5、[实验结果(结论)] #include stdio.h #include string.h typedef char TElemType ; typedef struct BiNode { TElemType data; struct BiNode * lchild ,* rchild; }BiNode ,*BiTree; BiTree CreateBiTree(BiTree bt) { char ch; BiTree h=NULL; ch=getchar(); if(ch==#) bt=NULL; else { if((bt=(BiNode *)malloc(sizeof(BiNode)))==NULL) exit(-2); bt-data=ch; bt-lchild=CreateBiTree(h); bt-rchild=CreateBiTree(h); } return(bt); } void PreOrderTraverse(BiTree bt) {if(bt) { printf(%c,bt-data); PreOrderTraverse(bt-lchild); PreOrderTraverse(bt-rchild); } } void InOrderTraverse(BiTree bt) { if(bt) { InOrderTraverse(bt-lchild); printf(%c,bt-data); InOrderTraverse(bt-rchild); } } void PostOrderTraverse(BiTree bt) { if(bt) { PostOrderTraverse(bt-lchild); PostOrderTraverse(bt-rchild); printf(%c,bt-data); } } main() { BiTree T; T=CreateBiTree(NULL); printf(\nthe PreOrder is:); PreOrderTraverse(T); printf(\nthe InOrder is:); InOrderTraverse(T); printf(\nPostOrder is:); PostOrderTraverse(T); } A D E F B C G H

文档评论(0)

1亿VIP精品文档

相关文档