二叉树遍历算法实现(C#2.0)
2007-04-11 12:29
405 查看
本人用C#2.0实现了二叉树的定义,怎么构造一颗已知的二叉树,用几种常规的算法(先序,中序,后序,层次)遍历二叉树。希望能给有需要人带来帮助,也希望能得到大家的指点。有关C#数据结构的书在书店里找到,网上也是极少,如果你有好的学习资源别忘了告诉我。先谢了。数据结构对一个程序员来说,现在是太重要了,数据结构学得好的人,逻辑思维一定很强,在程序设计的时候,就不会觉得太费劲了。而且是在设计多层应用程序的时候,真是让人绞尽脑汁啊。趁自己还年轻,赶紧练练脑子。哈哈,咱们尽快进入主题吧。
本程序中将用到一棵已知的二叉树如图(二叉树图)所示。
<script type="text/javascript"><!--
google_ad_client = "pub-6628499292856412";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
//2006-11-11: 二叉遍历算法
google_ad_channel = "8902411465";
google_color_border = "000000";
google_color_bg = "FFFFFF";
google_color_link = "191919";
google_color_text = "333333";
google_color_url = "008000";
//--></script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>
<iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-6628499292856412&dt=1176265683828&lmt=1176265683&format=468x60_as&output=html&channel=8902411465&url=http%3A%2F%2Fwww.cnblogs.com%2Fxuanfeng%2Farchive%2F2006%2F09%2F20%2F509897.html&color_bg=FFFFFF&color_text=333333&color_link=191919&color_url=008000&color_border=000000&ad_type=text_image&cc=1478&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480&u_java=true" frameborder="0" width="468" scrolling="no" height="60" allowtransparency="allowtransparency"></iframe>
下面简单介绍一下几种算法和思路:
先序遍历:
1. 访问根结点
2. 按先序遍历左子树;
3. 按先序遍历右子树;
4. 例如:遍历已知二叉树结果为:A->B->D->G->H->C->E->F
中序遍历:
1. 按中序遍历左子树;
2. 访问根结点;
3. 按中序遍历右子树;
4. 例如遍历已知二叉树的结果:B->G->D->H->A->E->C->F
后序遍历:
1. 按后序遍历左子树;
2. 按后序遍历右子树;
3. 访问根结点;
4. 例如遍历已知二叉树的结果:G->H->D->B->E->F->C->A
层次遍历:
1. 从上到下,从左到右遍历二叉树的各个结点(实现时需要借辅助容器);
2. 例如遍历已知二叉树的结果:A->B->C->D->E->F->G->H
附加整个解决方案代码:
本程序中将用到一棵已知的二叉树如图(二叉树图)所示。
<script type="text/javascript"><!--
google_ad_client = "pub-6628499292856412";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
//2006-11-11: 二叉遍历算法
google_ad_channel = "8902411465";
google_color_border = "000000";
google_color_bg = "FFFFFF";
google_color_link = "191919";
google_color_text = "333333";
google_color_url = "008000";
//--></script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>
<iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-6628499292856412&dt=1176265683828&lmt=1176265683&format=468x60_as&output=html&channel=8902411465&url=http%3A%2F%2Fwww.cnblogs.com%2Fxuanfeng%2Farchive%2F2006%2F09%2F20%2F509897.html&color_bg=FFFFFF&color_text=333333&color_link=191919&color_url=008000&color_border=000000&ad_type=text_image&cc=1478&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480&u_java=true" frameborder="0" width="468" scrolling="no" height="60" allowtransparency="allowtransparency"></iframe>
下面简单介绍一下几种算法和思路:
先序遍历:
1. 访问根结点
2. 按先序遍历左子树;
3. 按先序遍历右子树;
4. 例如:遍历已知二叉树结果为:A->B->D->G->H->C->E->F
中序遍历:
1. 按中序遍历左子树;
2. 访问根结点;
3. 按中序遍历右子树;
4. 例如遍历已知二叉树的结果:B->G->D->H->A->E->C->F
后序遍历:
1. 按后序遍历左子树;
2. 按后序遍历右子树;
3. 访问根结点;
4. 例如遍历已知二叉树的结果:G->H->D->B->E->F->C->A
层次遍历:
1. 从上到下,从左到右遍历二叉树的各个结点(实现时需要借辅助容器);
2. 例如遍历已知二叉树的结果:A->B->C->D->E->F->G->H
附加整个解决方案代码:
相关文章推荐
- [zhuan]二叉树遍历算法实现(C#2.0)
- [转]二叉树遍历算法实现(C#2.0)
- 二叉树遍历算法实现(C#2.0)
- 二叉树遍历算法实现(C#2.0)
- 二叉树遍历算法实现(C#2.0)
- 轻量级 Lock Free 线程安全的 Queue<T> 的C#2.0实现
- C#2.0纯数学方法递归实现货币数字转换中文
- c# 2.0 Factory的实现
- C# 实现的二叉树遍历算法解决方案
- 无聊用C#2.0泛型实现的链表(C#数据结构一)
- 用C#2.0实现网络蜘蛛(WebSpider)
- 用C#2.0实现网络蜘蛛(WebSpider)
- Asp.net 2.0 C#实现压缩/解压功能
- 用C#实现RSS的生成和解析,支持RSS2.0和Atom格式
- 用C#2.0实现网络蜘蛛(WebSpider)
- C#2.0 Singleton 的实现
- 用C#2.0中用范型实现单例模式
- 转载:Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载)
- Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载)
- C# 2.0 中Iterators的改进与实现原理浅析