的右边执行先序遍历};四、实验结果(设计文档、文稿存放路径,能够截图描述实验结果)#include<stdio.h>#include"3.h"intmain(void)//改主程序对应上图结果{ TreepTree;?inti,j;?pTree=CreateBTree();//创立二叉树pTree?i=CountLeaf(pTree);?printf("Thereare%dleaves!",i);//递归程序数叶节点?j=CountLevel(pTree);?printf("Thereare%dlevels!",j);//递归程序数层数?PreOrder(pTree);//按照前序遍历输出该书的元素?return0;}五、实验分析总结本次实验采用二叉树存储了一系列的字符串,经过函数TreeCreateBTree(void)得到一个根据输入创立的二叉树结构,时间复杂度是O(n);经过函数intCountLeaf(TreeT)递归返回叶子个数,时间复杂度O(n);经过intCountLevel(TreeT)返回最深路径得到树的深度,时间复杂度O(n);;最后用voidPreOrder(TreeT)实现非递归写法的二叉树先序遍历,时间复杂度为O(n).综上所述,因为都是要遍历B数的每个节点,因此程序执行的时间长度和输入的字符串长度n是线性增长的。她们的时间复杂度都是O(n).这次实验,我更深刻的理解了B数的基本性质如递归性,利用递归,我们能够很方便的写出各种对树的操作;熟悉了创立树,遍历树的基本方法;体会了算法的代码实现细节。最后,特别是在用非递归方法实现遍历的函数中,我更加深刻的理解到了数是如何遍历的,以及递归是不断调用自己的本质,而且不但仅对BTree本身有运用,之前学习的栈也用于存储遍历的节点指针,因此数据结构的学习应该是一个融会贯通的过程,我在学习的过程中越来越有信心了。