版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C#实现二叉树遍历算法用C#2.0实现了二叉树的定义,怎么构造一颗已知的二叉树,用几种常规的算法(先序,中序,后序,层次)遍历二叉树。希望能给有需要人带来帮助,也希望能得到大家的指点。有关C#数据结构的书在书店里找到,网上也是极少,如果你有好的学习资源别忘了告诉我。先谢了。数据结构对一个程序员来说,现在是太重要了,数据结构学得好的人,逻辑思维一定很强,在程序设计的时候,就不会觉得太费劲了。而且是在设计多层应用程序的时候,真是让人绞尽脑汁啊。趁自己还年轻,赶紧练练脑子。哈哈,咱们尽快进入主题吧。本程序中将用到一棵已知的二叉树如图(二叉树图)所示。下面简单介绍一下几种算法和思路:先序遍历:访问根结点按先序遍历左子树;按先序遍历右子树;4.例如:遍历已知二叉树结果为:A->B->D->G->H->C->E->F
中序遍历:按中序遍历左子树;访问根结点;按中序遍历右子树;例如遍历已知二叉树的结果:B->G->D->H->A->E->C->F后序遍历:按后序遍历左子树;按后序遍历右子树;访问根结点;例如遍历已知二叉树的结果:G->H->D->B->E->F->C->A层次遍历:从上到下,从左到右遍历二叉树的各个结点(实现时需要借辅助容器);例如遍历已知二叉树的结果:A->B->C->D->E->F->G->H附加整个解决方案代码:二叉遍历算法解决方案usingSystem;usingSystem.Collections.Generic;
usingSystem.Text;namespacestructure二_“二_义〃二叉树结点数据结构包括数据域,左右结点以及父结点成员;Tdata;nodes<T>Lnode,Rnode,Pnode;…set{data=value;}get{returndata;}…<5
S_alue;}set{Rnode=value;}:™set{Pnode=value;}publicnodes(){}publicnodes(Tdata)
…;-先序编历二叉树#region先序编历二叉树Console.WriteLine(rootNode.Data);PreOrdervT>(rootNode.LNode);—#endregion构造一棵已知的二叉树#region构造一棵已知的二叉树
staticnodesvstring>BinTree(){nodes<string>[]binTree=newnodesvstring>[8];〃创建结点binTree[0]=newnodesvstring>("A");binTree[1]=newnodes<string>("B");binTree[2]=newnodesvstring>("C");binTree[3]=newnodesvstring>("D");binTree[4]=newnodesvstring>("E");binTree[5]=newnodesvstring>("F");binTree[6]=newnodesvstring>("G");binTree[7]=newnodesvstring>("H");〃使用层次遍历二叉树的思想,构造一个已知的二叉树binTree[0].LNode=binTree[1];binTree[0].RNode=binTree[2];binTree[l].RNode=binTree[3];binTree[2].LNode=binTree[4];
binTree[2].RNode=binTree[5];binTree[3].LNode=binTree[6];binTree[3].RNode=binTree[7];〃返回二叉树的根结点:“"i#endregion中序遍历二叉树#region中序遍历二叉树MidOrdervT>(rootNode.LNode);Console.WriteLine(rootNode.Data);
#endregion后序遍历二叉树#region后序遍历二叉树staticvoidAfterOrdervT>(nodesvT>rootNode){if(rootNode!=null){AfterOrdervT>(rootNode.LNode);AfterOrdervT>(rootNode.RNode);Console.WriteLine(rootNode.Data);}}#endregion层次遍历二叉树#region层次遍历二叉树staticvoidLayerOrdervT>(nodesvT>rootNode){nodes<T>[]Nodes=newnodes<T>[20];intfront=-1;
intrear=-1;rear++;front++;rootNode=Nodes[front];Console.WriteLine(rootNode.Data);i_rear++;if(rootNode.RNode!=null)
rear++;Nodes[rear]=rootNode.RNode;}}}#endregion测试的主方法#region测试的主方法staticvoidMain(string[]args){nodes<string>rootNode=BinTree();Console.WriteLine(”先序遍历方法遍历二叉树:");PreOrdervstring>(rootNode);Console.WriteLine(”中序遍历方法遍历二叉树:");MidOrdervstring>(rootNode);C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【创新设计】2022年高三生物(人教版)一轮复习-基础课时案26-内环境组成与稳态-课后训练
- 山东省济南市历城二中2025年高考物理模拟试卷(含答案)
- 【优化方案】2021高考数学(人教版)一轮复习学案19-三角函数的图象与性质
- 【名师一号】2020-2021学年高中生物(人教版)必修三双基限时练12-群落的结构
- 【全程复习方略】2020年高考政治一轮课时提升作业(2)-必修1-第1单元-第2课(江苏专供)
- 2023-2024学年湖南省长沙一中雨花新华都学校七年级(上)期末数学试卷
- 一年级数学计算题专项练习1000题集锦
- 【2022届走向高考】高三数学一轮(人教B版)基础巩固:第7章-第2节-基本不等式
- 【创新设计】2021年高考数学(四川专用-理)一轮复习考点突破:第9篇-第2讲-用样本估计总体
- 晚唐诗歌创作成就资料讲解
- 消防安全每月防火检查记录
- (完整word版)Word信纸(A4横条直接打印版)模板
- 钢结构件运输专项方案
- 2023新能源风电集控中心建设规划方案-简版
- 四年级上册美术说课稿及教学反思-3.7 妈妈的好帮手丨岭南版
- 物业公司车辆进出登记表
- DCS基础培训课程(和利时)课件
- 员工消防安全教育培训
- HART-375手操器说明书
- 文学批评与实践-四川大学中国大学mooc课后章节答案期末考试题库2023年
- (52)-12.1服装的审美形态11.4
评论
0/150
提交评论