资源描述:
《二叉树实验报告总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划二叉树实验报告总结 实验报告 课程名称算法与数据结构 专业 学号 姓名实验日期 算法与数据结构实验报告 一、实验目的 1.了解二叉树的结构特点及有关概念,掌握二叉树建立的基本算法 2.了解二叉树遍历的概念,掌握遍历二叉的算法 3.进一步掌握树的结构及非线性特点,递归特点和动态性。 二、实验内容 二叉树的实现和运算 三、实验要求 1.用C++/C完成算法设计和程序设计并上机调试通过。
2、2.撰写实验报告,提供实验结果和数据。 3.分析算法,并简要给出算法设计小结和心得。 四、算法步骤目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 用户以三元组形式输入二叉树的结点元素及其位置关系,建立二叉树,并打印输出该二叉树。 用户输入选择结点,程序调用BiTNode*FindNode(chartag,BiTNode*nod
3、e)函数,返回子树的根结点,然后调用BiTreeDepth(BiTreeT)函数,求出子树的深度,并输出该值。 3.用户可以选择是否继续执行程序,若继续,则输入1,否则输入0,结束程序。 五、主程序代码: intmain(void) { BiTreeT; TElemTypee1; charnode;//node为用户选择输入的结点// intb,choose;//b为以选定结点为子树的深度,choose为实现多次选择输入的标志// BiTNode*a;//a为选定结点为子树的根结点// choose=1
4、;//多次选择的标志,当choose为1时运行程序,为0时结束程序//InitBiTree(T); printf("构造空二叉树后,树空否?%d(1:是0:否),树的深度=%d",BiTreeEmpty(T),BiTreeDepth(T)); e1=Root(T); if(e1!=Nil)目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质
5、的培训计划 #ifdefCHAR printf("二叉树的根为:%c",e1); #endif #ifdefINT printf("二叉树的根为:%d",e1); #endif else printf("树空,无根");//三元组构建二叉树stringx; printf("输入格式说明:三元组方式输入,P:parent,C:child,L/R:CisP'sleftchild/rightchild,输入end结束输入"); printf("eg.theroot:input^AL,itsle
6、ftchildisB:inputABL,itsrightchildisC:inputACR!"); GetUserWord(x); while(x!="end") { AddNode(T,x[0],x[1],x[2]); GetUserWord(x); }//输出树PrintTreeLevel(T); //以三元组形式输入任意二叉树,求以任意一选定结点为子树的深度。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战
7、略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 while(choose)//实现多次选择输入// { printf("Pleaseselectanode:"); fflush(stdin); scanf("%c",&node); a=FindNode(node,T);//a为生成子树的根// b=BiTreeDepth(a); printf("theDepthofBiTreeis:%d",b); printf("ifyouwanttocointu
8、echoose1,elsechoose0:"); fflush(stdin); scanf("%d",&choose); } DestroyBiTree(T); returnEXIT_SUCCESS; } 六、心得体会 树是常用的数据结构。通过实验加深了我对树的遍历的认识,巩固了课本中所