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