C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法
作者:lele 发布时间:2023-11-24 11:00:37
标签: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#程序设计有所帮助。


猜你喜欢
- 前言qq最近更新搞了渐变式状态栏.然后...新需求就是要加这个.唉先来张效果图:常见的方式:设置Theme,状态栏透明. <item
- 简介Pyjnius是一个用于访问Java类的Python库。适用场景:极个别的加密算法等内容,用python不方便实现或者实现较耗时,可基于
- 1.动态绑定机制java的动态绑定机制非常重要实例A我们来看一个实例:阅读上面的代码,请说明下面的程序将输出什么结果:程序将会输出40和30
- 说到关注功能,可能很多小伙伴要说了。谁不会写但是没有合理的架构,大家写出来的代码很可能是一大堆的复制粘贴。比如十几个页面,都有这个关注按钮。
- 本文是在我的文章android图片处理,让图片变成圆形 的基础上继续写的,可以去看看,直接看也没关系,也能看懂 1、首先在res文
- 最近在玩3g体育门户客户端的时候,看到这样个效果: 轻触赛事图标,会有一个图标变大浮出的效果.,蛮有意思的.于是就把仿照它做了一
- 谷歌的AI击败了一位围棋大师,是一种衡量人工智能突然的快速发展的方式,也揭示了这些技术如何发展而来和将来可以如何发展。人工智能是一种未来性的
- 项目中遇到了下载文件文件名是中文而且还有空格如果不对连接进行处理下载就会报错要想解决这个问题只需对你的url 进行编码然后替换空格用编码表示
- 前言作为一个服务端开发感觉一直挺排斥框架这种东西的,总觉得什么实现逻辑都帮你封装在里面了,你只需要配置这配置那个,出了问题也不知道怎么排查,
- SpringMVC获取表单数据1、实体类package cn.hadron.bean;import java.io.Serializable
- Spring Boot如何实现分布式系统中的服务发现和注册?随着互联网的快速发展,越来越多的企业开始将自己的业务迁移到分布式系统中。在这种情
- C#操作Excel的方法有很多种,常见的有微软官方的OLE Automation,Apache的POI等。这里介绍的是POI翻译成C#的NP
- 这篇文章主要介绍了Spring AOP AspectJ使用及配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 开始学习WebSocket,准备用它来实现一个在页面实时输出log4j的日志以及控制台的日志。首先知道一些基础信息:1.java7 开始支持
- Java画图 给图片底部添加文字标题需求给图片底部添加文字编号import java.awt.Color;import java.awt.F
- 本文实例讲述了Java基于Swing实现的打猎射击游戏代码。分享给大家供大家参考。具体实现代码如下:package Game;import
- 配置java环境变量这里是将环境变量配置在etc/profile,即为所有用户配置JDK环境。sudo vi /etc/profile配置环
- Jenkins集成Sonar过程中遇到的报错1、jenkins中无法添加sonarqube的token凭证因为添加的凭证类型错误,所以无法添
- 下面由我来给大家展示用spring aop实现 * 的例子(电脑打印)下面就看一下具体的代码:先定义一个打印机的接口package aop
- 数组:是一组相关变量的集合数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组数据的有