C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法

本文实例讲述了C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法。分享给大家供大家参考。具体实现方法如下:

public class BinaryTreeNode
{
 public BinaryTreeNode Left { get; set; }
 public BinaryTreeNode Right { get; set; }
 public int Data { get; set; }
 public BinaryTreeNode(int data)
 {
  this.Data = data;
 }
}
public enum TreeTraversal
{
  PREORDER,
  INORDER,
  POSTORDER
}
public void PrintTree(BinaryTreeNode root, TreeTraversal treeTraversal)
{
  Action<int> printValue = delegate(int v)
  {
   Console.Write(v + " ");
  };
  switch (treeTraversal)
  {
   case TreeTraversal.PREORDER:
    PreOrderTraversal(printValue, root);
    break;
   case TreeTraversal.INORDER:
    InOrderTraversal(printValue, root);
    break;
   case TreeTraversal.POSTORDER:
    PostOrderTraversal(printValue, root);
    break;
   default: break;
  }
}
public void PreOrderTraversal(Action<int> action, BinaryTreeNode root)
{
  if (root == null)
   return;
  action(root.Data);
  PreOrderTraversal(action, root.Left);
  PreOrderTraversal(action, root.Right);
}
public void InOrderTraversal(Action<int> action, BinaryTreeNode root)
{
  if (root == null)
   return;
  InOrderTraversal(action, root.Left);
  action(root.Data);
  InOrderTraversal(action, root.Right);
}
public void PostOrderTraversal(Action<int> action, BinaryTreeNode root)
{
  if (root == null)
   return;
  PostOrderTraversal(action, root.Left);
  PostOrderTraversal(action, root.Right);
  action(root.Data);
}

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • 一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)

    复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.Linq; using System.Xml; using System.Xml.Linq; namespace WebApplication3 { public

  • c#反射表达式树模糊搜索示例

    复制代码 代码如下: public static Expression<Func<T, bool>> GetSearchExpression<T>(string SearchString)        {            Expression<Func<T, bool>> filter = null; if (string.IsNullOrEmpty(SearchString)) return null;            var l

  • C#通过KD树进行距离最近点的查找

    本文首先介绍Kd-Tree的构造方法,然后介绍Kd-Tree的搜索流程及代码实现,最后给出本人利用C#语言实现的二维KD树代码.这也是我自己动手实现的第一个树形的数据结构.理解上难免会有偏差,敬请各位多多斧正. 1. KD树介绍 Kd-Tree(KD树),即K-dimensional tree,是一种高维索引树形数据结构,常用于在大规模的高维数据空间进行最邻近查找和近似最邻近查找.我实现的KD树是二维的Kd - tree.目的是在点集中寻找最近点.参考资料是Kd-Tree的百度百科.并且根据百度

  • C#求解哈夫曼树,实例代码

    复制代码 代码如下: class HuffmanTree    {        private Node[] data;        public int LeafNum { get; set; }        public Node this[int index]        {            get { return data[index]; }            set { data[index] = value; }        }        public Hu

  • ASP.NET C#生成下拉列表树实现代码

    效果图: 代码: 复制代码 代码如下: using System.Data; using System.Web.UI.WebControls; /// <summary> /// 根据DataTable生成下拉列表树 /// </summary> public class DropDownListHelp { private string gridline; private DataTable dt; public DropDownListHelp() { // //TODO: 在

  • C# TreeView无限目录树实现方法

    本文实例讲述了C# TreeView无限目录树实现方法.分享给大家供大家参考,具体如下: #region 绑定客户树 protected void bindTreeView() { TreeView1.Nodes.Clear(); string userid = Session["UserID"].ToString(); string sqlwr = new SY_ADMINUSER().GetUserIDListByLoginUser(userid, "CUSTOMERSE

  • C#实现获取系统目录并以Tree树叉显示的方法

    本文讲述C#获取Windows系统目录,如何目录遍历以及将信息捆绑在TreeView中显示出来的实现方法,具体实现代码如下: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; namespace 获取系统目录 { public class

  • C# 递归查找树状目录实现方法

    1.递归查找树状目录 复制代码 代码如下: public partial class Form1 : Form    {        string path = @"F:\学习文件";//递归查找树状目录        public Form1()        {递归查找树状目录            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e) 

  • C#之Expression表达式树实例

    本文实例讲述了C#之Expression表达式树,分享给大家供大家参考.具体实现方法如下: 表达式树表示树状数据结构的代码,树状结构中的每个节点都是一个表达式,例如一个方法调用或类似 x < y 的二元运算 1.利用 Lambda 表达式创建表达式树 复制代码 代码如下: Expression<Func<int, int, int, int>> expr = (x, y, z) => (x + y) / z; 2.编译表达式树,该方法将表达式树表示的代码编译成一个可执行

  • 关于c#二叉树的实现

    本篇纯属娱乐,源于整理代码,发现还曾实现过遍历二叉树. 虽然.NET/C#中的各种集合类已经实现了最优的排序设计,但了解基本的算法实现有助于软件开发中的各种权衡和选择.比如,如果你实现过B+树排序和查找,并将树节点序列化至二进制文件块,则你应该已经了解了各种数据库索引的基本设计. 什么是二叉树?http://en.wikipedia.org/wiki/Binary_tree 二叉树节点类定义 复制代码 代码如下: View Code    /// <summary>   /// 二叉树节点  

随机推荐