zoukankan
html css js c++ java
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);
}
}
// BinaryTree类
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();
}
}
}
查看全文
相关阅读:
盒子垂直水平居中
Sahi (2) —— https/SSL配置(102 Tutorial)
Sahi (1) —— 快速入门(101 Tutorial)
组织分析(1)——介绍
Java Servlet (1) —— Filter过滤请求与响应
CAS (8) —— Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端)
JBoss Wildfly (1) —— 7.2.0.Final编译
CAS (7) —— Mac下配置CAS 4.x的JPATicketRegistry(服务端)
CAS (6) —— Nginx代理模式下浏览器访问CAS服务器网络顺序图详解
CAS (5) —— Nginx代理模式下浏览器访问CAS服务器配置详解
原文地址:https://www.cnblogs.com/guoxiaowen/p/1262571.html
最新文章
使用charles V3.11.2 实现SSL抓包
Fiddler替换HTTP Request Host
python控制流 If-else
python运算符和表达式
开始 Python 之旅
MySQL常用查询
MySQL 操作详解
MySQL 服务安装及命令使用
mysql基础篇
mysql基础篇
热门文章
mysql基础篇
vue 项目里正确地引用 jquery
vue生成路由实例
vue生成路由实例, 使用单个vue文件模板生成路由
vscode的vetur插件提示 [vue-language-server] Elements in iteration expect to have 'v-bind:key' directives错误的解决办法
vue过滤动画
vue组件通信
vue钩子生命周期
vue组件定义方式
vue-cli脚手架
Copyright © 2011-2022 走看看