杂七杂八——C#实现二叉树,外带中序遍历
来源:互联网 发布:淘宝第一次自动回复 编辑:程序博客网 时间:2024/05/18 03:29
杂七杂八——C#实现二叉树,外带中序遍历
发现用C#语法实现数据结构的时候,代码显得干净利落,嘻嘻。
- using System;
- namespace BinaryTree
- {
- // Binary Tree的结点类
- class Node
- {
- public int Data { get; set; }
- public Node LeftSubNode { get; set; }
- public Node RightSubNode { get; set; }
- // 结点为自己追加子结点(与向左/向右追加结合,形成递归)
- public void Append(Node subNode)
- {
- if (subNode.Data <= this.Data)
- {
- this.AppendLeft(subNode);
- }
- else
- {
- this.AppendRight(subNode);
- }
- }
- // 向左追加
- public void AppendLeft(Node subNode)
- {
- if (this.LeftSubNode == null)
- {
- this.LeftSubNode = subNode;
- }
- else
- {
- this.LeftSubNode.Append(subNode);
- }
- }
- // 向右追加
- public void AppendRight(Node subNode)
- {
- if (this.RightSubNode == null)
- {
- this.RightSubNode = subNode;
- }
- else
- {
- this.RightSubNode.Append(subNode);
- }
- }
- // 结点显示自己的数据
- public void ShowData()
- {
- Console.WriteLine("Data={0}", this.Data);
- }
- }
- // Binary Tree类
- class Tree
- {
- // 根结点
- public Node Root { get; set; }
- // 以某结点为起点,插入结点
- public void Insert(Node newNode)
- {
- if (this.Root == null)
- {
- this.Root = newNode;
- }
- else
- {
- this.Root.Append(newNode);
- }
- }
- // 重载,默认以根结点为起点插入
- public void MidTravel()
- {
- this.MidTravel(this.Root);
- }
- // 中序遍历(递归)
- public void MidTravel(Node node)
- {
- if (node.LeftSubNode != null)
- {
- this.MidTravel(node.LeftSubNode);
- }
- node.ShowData();
- if (node.RightSubNode != null)
- {
- this.MidTravel(node.RightSubNode);
- }
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Tree tree = new Tree();
- tree.Insert(new Node { Data = 3 });
- tree.Insert(new Node { Data = 6 });
- tree.Insert(new Node { Data = 2 });
- tree.Insert(new Node { Data = 7 });
- tree.Insert(new Node { Data = 18 });
- tree.MidTravel();
- }
- }
- }
- // 水之真谛
- // http://blog.csdn.net/FantasiaX
- 杂七杂八——C#实现二叉树,外带中序遍历
- C#实现二叉树,外带中序遍历
- C#实现二叉树,外带中序遍历
- C#中实现二叉树的遍历
- 前序遍历二叉树,中序遍历二叉树,后序遍历二叉树 c#实现
- C#实现二叉树遍历
- 二叉树遍历(遍历C#实现)
- Java实现——根据先序遍历和中序遍历,确定二叉树
- 二叉树的遍历 非递归 C实现——中序遍历篇
- 二叉树的遍历C实现(非递归)—中序遍历
- 二叉树的中序遍历实现
- 二叉树实现中序遍历(迭代版)
- C#实现二叉树数据结构以及先序、中序、后续遍历
- 二叉树遍历算法实现(C#2.0)
- 二叉树遍历算法实现(C#2.0)
- C#二叉树遍历算法实现浅析
- C#实现二叉树遍历算法
- 二叉树学习——前序、中序、后序遍历(Java实现)
- SQLite 简单教程
- .NET垃圾回收机制详解与心得体会
- 日記-01-2008.08.06-15:44
- 相册照片的链接
- SSH 安装与配置
- 杂七杂八——C#实现二叉树,外带中序遍历
- 一个封装比较完整的FTP类——clsFTP
- 拖拽代码
- Mogre学习笔记(六)
- 如何提高asp.net性能
- Mogre学习笔记(七)
- 在C#当中使用注释
- C语言面试题大汇总之华为面试题
- .Net学习笔记 - 参数类型的序列化与反序列化