预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

树实验报告一、需求分析1、输出要求:1)用键盘输入相应的值(0~10);用键盘输入二叉树结点的编号和对应的值,其值类型为字符型。2)在main函数中会输出一个主菜单,根据菜单提示内容输入相应的值,并输出相应功能的结果。2、程序所达到的功能:1)按字符序列建立二叉链表。2)按先序、中序,后序和层次遍历二叉树(递归算法)。3)按某种形式输出整棵二叉树。4)求二叉树的高度。5)求二叉树中叶节点的个数。6)交换二叉树的左右子树。3、测试数据:1)首先输入1,然后再输入二叉树的编号和对应的值:(1,a)(2,b)(3,c)从而建立一个完整的二叉树。2)根据菜单提示依输入3,4,5,6四种遍历该二叉树。3)输入7,8,9依次输出二叉树的高度、叶子结点数和交换二叉树的左右子树。4)输入10会输出逆时针旋转90度的二叉树。5)输入0程序结束。二、概要设计1、为了实现上述程序功能,需要定义二叉树结点的类型为字符型,定义树结点二叉树。2、本程序包含了13个函数:1)主函数main()。2)建立二叉树BiTNode*create_bt()3)四种方式对二叉树进行遍历preorder(),inorder(),postorder(),levorder()(此函数调用函数enqueue()和函数delqueue())。4)计算二叉树的高度treedepth().5)计算二叉树中叶结点的个数和叶结点个数leafcount(),painleaf().6)交换二叉树的左右子树exchange().7)逆时针旋转90度输出二叉树数形prtbtree().各函数的关系:main()BiTNode*create_bt()leafcount()preorder()painleaf()inorder()exchange()postorder()treedepth()levorder())prtbtree()enqueue()delqueue()四、详细设计:1)写出头文件、树结点结构。2)main()函数的功能:用do-while使主菜单循环输出,进入swith()语句调用相应的函数。3)我们学习了两种建立二叉树的方法在此我们利用二叉树的性质借助一维数组V建立二叉树BiTNode*create_bt()。5)函数preorder()用来先序遍历二叉树。6)函数inorder()用来中序遍历二叉树。7)函数postorder()用来后序遍历二叉树.8)函数levorder()用来层次遍历二叉树,层次二叉树采用了队列的方法,故需调用函数enqueue()和函数delqueue()。9)函数leafcount()用来二叉树叶结点数10)函数painleaf()用来输出叶结点11)函数exchange()用来交换二叉树的左右子树。12)函数treedepth()用来计算二叉树的高度。13)函数prtbtree()用来逆时针旋转90度输出二叉树数形.14)流程图见附件纸张。五、调试分析在写程序时出现了很多错误,如下:1)[Error]C:\DocumentsandSettings\Administrator\桌面\实验树\exerisetree.c:68:parseerrorbefore`else'改正:在else前少写了一个}2)[Error]C:\DocumentsandSettings\Administrator\桌面\实验树\exerisetree.c:170:`rea'undeclared(firstuseinthisfunction)改正:定义中为rear此处应改为rear3)[Error]C:\DocumentsandSettings\Administrator\桌面\实验树\exerisetree.c:174:invalidoperandstobinary+改正:此处应为=不是而不是+六、测试结果1)键盘输入:1请继续输入二叉树个结点的编号和对应的值:1,a请继续输入二叉树个结点的编号和对应的值:2,b请继续输入二叉树个结点的编号和对应的值:3,c请继续输入二叉树个结点的编号和对应的值:0,#2)请输入您的选择(0,1,2,3,4,5,6,7,8,9,10)3先序遍历二叉树abc3)请输入您的选择(0,1,2,3,4,5,6,7,8,9,10)4中序遍历二叉树:bac4)请输入您的选择(0,1,2,3,4,5,6,7,8,9,10)5后序遍历二叉树:bca5)请输入您的选择(0,1,2,3,4,5,6,7,8,9,10)6层次遍历二叉树abc6)请输入您的选择(0,1,2,3,4,5,6,7,8,9,1