2024年二叉树实验报告.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

实??验??报告

課程名称算法与数据构造

专????业

學号

姓名?

试验曰期?11月17曰

算法与数据构造试验汇报

二叉树的应用

一、试验目的

1.理解二叉树的构造特點及有关概念,掌握二叉树建立的基本算法?

2.理解二叉树遍历的概念,掌握遍历二叉的算法

3.深入掌握树的构造及非线性特點,递归特點和動态性。?

二、试验内容

二叉树的实現和运算

三、试验规定?

1.用C++/C完毕算法设计和程序设计并上机调试通過。

2.撰写试验汇报,提供试验成果和数据。?

3.分析算法,并简要給出算法设计小結和心得。?

四、算法环节

顾客以三元组形式输入二叉树的結點元素及其位置关系,建立二叉树,并打印输出该二叉树。

顾客输入选择結點,程序调用BiTNode*FindNode(chartag,BiTNode*node)函数,返回子树的根結點,然後调用BiTreeDepth(BiTreeT)函数,求出子树的深度,并输出该值。

3.顾客可以选择与否继续执行程序,若继续,则输入1,否则输入0,結束程序。

五、主程序代码:

intmain(void)

{

BiTreeT;

TElemTypee1;

charnode;//node為顾客选择输入的結點//

intb,choose;//b為以选定結點為子树的深度,choose為实現多次选择输入的標志//

BiTNode*a;//a為选定結點為子树的根結點//

choose=1;//多次选择的標志,當choose為1時运行程序,為0時結束程序//InitBiTree(T);

printf(构造空二叉树後,树空否?%d(1:是0:否),树的深度=%d\n,BiTreeEmpty(T),BiTreeDepth(T));

e1=Root(T);

if(e1!=Nil)

#ifdefCHAR

printf(二叉树的根為:%c\n,e1);

#endif

#ifdefINT

printf(二叉树的根為:%d\n,e1);

#endif

else

printf(树空,無根\n);//三元组构建二叉树stringx;

printf(输入格式阐明:三元组(P,C,L/R)方式输入,P:parent,C:child,L/R:CisPsleftchild/rightchild,输入end結束输入\n);

printf(eg.theroot:input^AL,itsleftchildisB:inputABL,itsrightchildisC:inputACR!\n);

GetUserWord(x);

while(x!=end)

{

AddNode(T,x[0],x[1],x[2]);

GetUserWord(x);

}//输出树PrintTreeLevel(T);

//以三元组形式输入任意二叉树(以大写字母表达結點),求以任意一选定結點為子树的深度。

while(choose)//实現多次选择输入//

{

printf(Pleaseselectanode:);

fflush(stdin);

scanf(%c,node);

a=FindNode(node,T);//a為生成子树的根//

b=BiTreeDepth(a);

printf(theDepthofBiTreeis:%d\n,b);

printf(\nifyouwanttocointuechoose1,elsechoose0:);

fflush(stdin);

scanf(%d,choose);

}

DestroyBiTree(T);

returnEXIT_SUCCESS;

}

六、心得体會?

树是常用的数据构造。通過试验加深了我對树的遍历的认识,巩固了書本中所學的有关树的基本算法。按规定完毕了试验内容。?

通過试验,有如下几點收获和体會:?

1、通過试验還提高了一點改錯能力,對于某些常見問題加深了印象。?

2、编程需要有耐心,尤其实在單步调试的時候,更是馬虎不得,有時候关键就是那么一步,錯過了就得從頭来過了。编程也需要勇气,要勇于发現自已的錯误,也要勇于推翻自已之前的思绪,要坚信“没有最佳,只有更好”。编程,最佳是一鼓作气,得每天“摸摸”它,時時想著它,要是過一阵再去碰它那就得先去讀懂自已的程序了,一切的一切几乎都得從頭開始。编程需要细心,有時一种不注意小錯误就能引出大問題。编程也需要规范,不仅為了他人能看得懂程序,也為了以便自已後来程序的更改与深入

文档评论(0)

159****1748 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档