C#实现二叉树遍历算法_第1页
C#实现二叉树遍历算法_第2页
C#实现二叉树遍历算法_第3页
C#实现二叉树遍历算法_第4页
C#实现二叉树遍历算法_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论