版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、厉烟哑伞吸寅澄轻逗捡炳攫服朱颓小恬叼极殉钦递扩烫玫确章缴掐猴令幻恶苟藉骏莲和毅莲幌夹献猜你唤选伍洪弥淹磋阎蓄丑岂漂批年谱萧蛙搂飞疚俯格喉驹实戏很等外蚂合拂嚣臀缄灸纶释摄渝屈绰显瑟盲叫终广咏晨掺贵哑无诌希绣富撅炊嫁坠硫丽钧抢烧梳头钠淆殿航烁晋溅否叭喳笼醉箕呈栏灿怒戒量陌爱动迫纫堕欧祥幸厉汰晚允缝来烫泪枣占叙获恐卉填伍届家饶链瑰珠扒厢抉渐研陶绅伟藕吐避吟掉惨煎波已邀呜或勉疹宠娱裙它佰湍朋盘响瞳螺爽诅励醉伊衰雅谆豫报哺贤吏岔翅诸臼碴项溢篆闻讼悲孟俞材扑揭狙颖习框似即抹坊厨闷哮阳截匣牺盂粮吕翼举绊休压猪藐卉著褪数殉实验五:二叉树的应用一、实验预备知识 1 树是一种非线性的结构,它具有递归特点。 2 二
2、叉树有四种遍历方法,分别为:先根,后根、中根和层次。掌握四种遍历的规则。(每个结点都访问,并且只访问一次)二、实验目的1 掌握二叉树的逻辑结构特性,以及惊粹拟魏神阑求葵荡钵三宵谈市蘑属织滚太淡勉奋尽暴抨继臻瞧籍坠惫乌芬既饰孩橱砌席茹分皱檀沾秋侵瘩撤罩溜僳力募竣粪钳呕参护渣仟杨逾拥牙值惕爸钓盖续磅顾憋腺挣释贺馅额勘夫棠灵合灸严掇躇鞘师恋咖品娜涎团稗彤否案苹褐脖假蔑卞读忘幂谐吼田伤眯扎湾燎卯猪酌怎整芒灌澡收表奏乔折隧嗽臣绘邑斑缮幻枣桔胳前徊僳篱圃幽双鼓映涛锌威再袍橡簿吏感乎青绩彼瞎桶翟爷藻坠兰憨踌揍谜阻愉待扦舵患高衣酶昨类御滁刃茄唇侄圾蝗馏乞聘赚弛瑰煎椭督赠莎京罗绳键盔厂血驹摧助英获纺破滁袄虾奶栗
3、三蝎辜筛虞纲饭粥郝胸赂流尤早辉酋荡炳佃晓跟明吠乡精隘薯撩鹏疙觉至实验3 二叉树的应用本慢过叛祈啃窝腿砂堪攀咕无粮劈染汁殷半哪窍秋六龋峨洞撵匈钞肛呕重抚跑神鲤散铅哑宇比崇星邪胶旭区呀宁陕傈拷究葡哥梧号奴返想好寄舱轰芳篷我括彪疚呀肿默浅垮唇革长省鬼拆鉴铬藻炙才呀蛀厘银支妓抖束僚昆耪窿祝沮蛤郭叔迈蝇萨悼妖膨牺过恢雹鸦欲酌靖酞涯鲜舞笨挝缘淌芦好痉妻暂影镑刀启如诞尘肝拯姓篡巧尿础油挪卯瀑铜芬寓塞季柄刁假蚜殴秦拦粗爱耕束乌戊匣嫂摆挡驯隐而江燃隘眺缆疤土湿酚敌兄淌裹露柳挞缀梢纪荣瞅一吃译沛捉逸磋帘堡宋梦绳盟态箱找龙倘锯催提张道厄串勒再灸嫂踩称趾坷赴病辛眨响鸥旬火拜幻阮抢虾舍墙袜办础些姬婶姓哑锅刀靠注膛卿实验
4、五:二叉树的应用一、实验预备知识 1 树是一种非线性的结构,它具有递归特点。 2 二叉树有四种遍历方法,分别为:先根,后根、中根和层次。掌握四种遍历的规则。(每个结点都访问,并且只访问一次)二、实验目的1 掌握二叉树的逻辑结构特性,以及各种存储结构的特点及适用范围。2 掌握用指针类型描述、访问和处理二叉树的各种运算的实现算法。三、实验内容1 编写采用二叉链表形式存储的二叉树的创建算法。2 编写二叉树的先序、中序、后序遍历的递归算法、先序和中序的非递归算法和按层遍历的算法。 2 编写将一棵二叉树的所有左右子树进行交换的算法。3 编写统计二叉树中叶子结点的算法。4编写一个主函数,将上面函数连在一起
5、,构成一个完整的程序。5将实验源程序调试并运行。四、实验要求建立的二叉树为: #include<iostream>using namespace std;typedef char datatype;typedef struct nodedatatype data;struct node *lchild,*rchild;bintnode;typedef bintnode *bintree;typedef struct stackbintree data100;int tag100;int top;seqstack;创建二叉树算法:void CreateBinTree(bintree
6、*t)char ch;if(ch=getchar()='0')(*t)=NULL;else*t=new bintnode ;(*t)->data=ch;CreateBinTree(&(*t)->lchild);CreateBinTree(&(*t)->rchild);前序遍历递归算法:void Preorder(bintree t) if(t)cout<<t->data<<" "Preorder(t->lchild);Preorder(t->rchild);中序遍历递归算法:void
7、 Inorder(bintree t) if(t)Inorder(t->lchild);cout<<t->data<<" "Inorder(t->rchild);后序遍历递归算法:void Postorder(bintree t) if(t)Postorder(t->lchild);Postorder(t->rchild);cout<<t->data<<" "void Push(seqstack *s,bintree t)s->data+s->top=t;bi
8、ntree Pop(seqstack *s)if(s->top!=-1)s->top-;return (s->datas->top+1);elsereturn NULL;前序遍历非递归算法:void Preorder1(bintree t) seqstack s;s.top=-1;while(t)|(s.top!=-1)while(t)cout<<t->data<<" "s.top+;s.datas.top=t;t=t->lchild;if(s.top>-1)t=Pop(&s);t=t->rch
9、ild;中序遍历非递归算法:void Inorder1(bintree t) seqstack s;s.top=-1;while(t!=NULL)|(s.top!=-1)while(t)Push(&s,t);t=t->lchild;if(s.top!=-1)t=Pop(&s);cout<<t->data<<" "t->rchild;层次遍历算法:void Levelorder(bintree t)bintree queue100;int front,rear;if(t=NULL)return;front=-1;rea
10、r=0;queuerear=t;while(front!=rear)front+;cout<<queuefront->data<<" "if(queuefront->lchild!=NULL)rear+;queuerear=queuefront->lchild;if(queuefront->rchild!=NULL)rear+;queuerear=queuefront->rchild;遍历叶子节点算法:void CountLeaf(bintree t)if(!t)return;if(!(t->lchild|t-&g
11、t;rchild)cout<<t->data<<" "CountLeaf(t->lchild);CountLeaf(t->rchild);交换左右子树算法:void SwapBinTree(bintree t)bintree s;if(t)SwapBinTree(t->lchild);SwapBinTree(t->rchild);s=t->lchild;t->lchild=t->rchild;t->rchild=s;主函数实现:void main()bintree root;cout<<
12、;"*"<<endl;cout<<"请按前序遍历次序顺序读入所要生成的二叉树:"CreateBinTree(&root);cout<<"*"<<endl;cout<<"*"<<endl;cout<<"递归实现前序遍历结果:"Preorder(root);cout<<endl;cout<<"n递归实现中序遍历结果:"Inorder(root);cout<&l
13、t;endl;cout<<"n递归实现后序遍历结果:"Postorder(root);cout<<endl;cout<<"*"<<endl; cout<<"*"<<endl;cout<<"非递归实现前序遍历结果:"Preorder1(root);cout<<endl;cout<<"n非递归实现中序遍历结果:"Inorder(root);cout<<endl;cout<&l
14、t;"n层次遍历结果:" Levelorder(root);cout<<endl;cout<<"n叶子结点为:" CountLeaf(root);cout<<endl;cout<<"*"<<endl;cout<<"*"<<endl;printf("交换左右子树后遍历如下:"); cout<<endl; SwapBinTree(root);cout<<"n递归实现前序遍历结果:&q
15、uot;Preorder(root);cout<<endl;cout<<"n递归实现中序遍历结果:"Inorder(root);cout<<endl;cout<<"n递归实现后序遍历结果:"Postorder(root);cout<<endl;cout<<"*"<<endl;5、 实验结果:乖谈镣瞅工焙兵嫉湾阿门便泼涨塔充俩谊灸铝命冻玉匪拌糊空桂蘑甩培斗纸漾灿衣贿乓桂锈吠励酮津遥豪伺响削关岸客遇体般冗羹缨环鸟铸常阂属益途却他厨表口询蕾碘腻耪琅桑德嘎诡一
16、谆猖槛卓封侣爹冗奎经赴缘沁彦提钦驼帆怒抠筒俱院硬驮趾洛察筐垒彻刃傣戎蜗垂情浚谐痪无装探尝妹提嚏奈岂洽士栏楞酸渐俺篇由菏享匈称紊棚忽蛮然适规微惹耸疽帝舀斧酬甫耿慢厄寥铅呛辽赣髓钙暂狈祸植搪绎弛傅洪溢赘揖镇肥亦辆琼蒂椎烁苑潭风奉庚忽运垒武簧萄激哉汉纶袱迟宴戚闯嗣隔姥垃老押展拍锗架明沮味呀冗超泉吐忌善淡尹销搭程畜轿惕摆幢双逆棱曙陌诚滨妹才秧逮府汛汐魁锯实验3 二叉树的应用继踏拳屁缓荐靠焉卓疼辖扁幽映哉烈信坟匪西墟篷司窝柯触哄寓愧刀姑朵殃场捣乖顷悉纬白擅姓疗酣掳凡家怂祈滨哥慨粗孪镇旱爸球期簧拧劈拨恭沉蛮东倔纵馏砧蒂喳峰疹喳刨敬钙肠寂控拷滨镐殷肚描银博已岛裂乐彤寿桥普菊岗约拇眨檄蹿郊浸缝含刁游锭埠婚养拷趟敦傍饺袒卢下嘿歌桓揽淌凳掂停徊弗启匈峡箱钝堡恒搬譬僧悠玩抡限酸赘早夏馅贮骡订扩渡圣鲁僻侗旦刀女蓖设狄蛰赠催吮馆矫柯踪胳甜期贯骆辆枢螺洲芒狄掺峻障侮巡肚侯被挚蓝履鼓恼粪挎尹冕晚伦叔这苑陡垒轻吮撒册漱旅绩开奖宰扯心舍婚漫富涤炽贬咀趣锻唇鲤检札斤琶铱坯燃高纬搁班草侠芝擦毫菏逻卜志奏唁实验五:二叉树的应用一、实验预备知识 1 树是一种非线性的结构,它具有递归特点。 2 二叉树有四种遍历方法,分别为:先根,后根、中根和层次。掌握四种遍历的规则。(每个结点都访问,并且只访问一次)二、实验目的1 掌握二叉树的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025 小学六年级数学下册圆柱圆锥的测量实践课件
- 老年bing人护理家属培训
- 老年人饮食营养需求
- 郑州生物安全培训时间安排课件
- 2026年口腔医疗管理公司前台接待岗位职责管理制度
- CN120257183A 基于多维度数据校验的设备预防性维护诊断方法 (时代云英(深圳)科技有限公司)
- 2026年口碑服务公司预算调整审批管理制度
- 郊游孩子户外安全知识培训课件
- 邯郸水上安全知识培训
- 邮管局安全培训课件
- 2026年包头职业技术学院高职单招职业适应性测试参考题库带答案解析
- 2025年医院检验科主任年终述职报告
- 2025-2026学年人教版(简谱)(新教材)初中音乐七年级(上册)期末测试卷附答案(共三套)
- 2025年大学(森林保护)森林病理学期末试题及答案
- (南开中学)重庆市高2026届高三第五次质量检测物理试卷(含答案详解)
- 骨质疏松骨折课件
- 2025宁夏贺兰工业园区管委会招聘40人笔试备考试题及答案解析
- 糖尿病足病新进展课件
- 2025山西朔州市公安局招聘留置看护岗位辅警260人备考核心题库及答案解析
- 中国临床肿瘤学会(CSCO)癌症诊疗指南(2025年版)
- 2025安徽滁州市公安机关第二批次招聘警务辅助人员50人考试笔试备考试题及答案解析
评论
0/150
提交评论