zoukankan
html css js c++ java
二叉树遍历:先序、中序、后序和层次遍历
public
class
BinaryNode
{
public
int
Data;
public
BinaryNode Left;
public
BinaryNode Right;
}
public
class
BinaryTree
{
public
void
PreOrder(BinaryNode node)
{
if
(node
!=
null
)
{
Console.WriteLine(node.Data);
PreOrder(node.Left);
PreOrder(node.Right);
}
}
public
void
MidOrder(BinaryNode node)
{
if
(node
!=
null
)
{
MidOrder(node.Left);
Console.WriteLine(node.Data);
MidOrder(node.Right);
}
}
public
void
AfterOrder(BinaryNode node)
{
if
(node
!=
null
)
{
AfterOrder(node.Left);
AfterOrder(node.Right);
Console.WriteLine(node.Data);
}
}
public
void
LayerOrder(BinaryNode node)
{
if
(node
!=
null
)
{
CurrentLayer(node.Left);
CurrentLayer(node.Right);
LayerOrder(node.Left);
LayerOrder(node.Right);
}
}
private
void
CurrentLayer(BinaryNode node)
{
if
(node
!=
null
)
{
Console.WriteLine(node.Data);
}
}
}
测试:
BinaryNode n1
=
new
BinaryNode();
n1.Data
=
27
;
BinaryNode n2
=
new
BinaryNode();
n2.Data
=
83
;
BinaryNode n3
=
new
BinaryNode();
n3.Data
=
123
;
BinaryNode n4
=
new
BinaryNode();
n4.Data
=
98
;
BinaryNode n5
=
new
BinaryNode();
n5.Data
=
94
;
BinaryNode n6
=
new
BinaryNode();
n6.Data
=
48
;
BinaryNode n7
=
new
BinaryNode();
n7.Data
=
61
;
n1.Left
=
n2;
n1.Right
=
n3;
n1.Left.Left
=
n4;
n1.Left.Right
=
n5;
n1.Right.Right
=
n6;
n1.Right.Right.Left
=
n7;
BinaryTree bTree
=
new
BinaryTree();
Console.WriteLine(
"
Pre Order Binary Tree:
"
);
bTree.PreOrder(n1);
Console.WriteLine(
"
Midd Order Binary Tree:
"
);
bTree.MidOrder(n1);
Console.WriteLine(
"
After Order Binary Tree:
"
);
bTree.AfterOrder(n1);
Console.WriteLine(
"
Layer Order Binary Tree:
"
);
bTree.LayerOrder(n1);
Console.ReadLine();
查看全文
相关阅读:
条款04:确定对象在使用前已经被初始化
条款06:若不想使用编译器自动生成的函数,就应该明确拒绝
计算机操作系统之死锁的原因和必要条件
条款10:令operator=返回一个reference to *this
条款02:尽量以const,enum,inline代替#define
条款11:在operator=处理自我赋值
计算机操作系统之进程与线程
堆排序
NodeJS For Windows
我常用的linux命令
原文地址:https://www.cnblogs.com/silva/p/1091806.html
最新文章
得到数据库中所有表的列数方法
RDA实现SQL CE与SQL Server间数据存取
SQL Server 2008 的 TransactSQL 语言增强
SQL Server 2008 BI详解
ora28000 the account is locked
OracleOraDb10g_home1TNSListener 启动失败
双机热备概述
菜鸟学PHP之Smarty入门
google首页动画(模拟flash帧)
我的第一个js程序
热门文章
js call 用法<转>
javascript 下拉列表 (select)
跨国物流公司招有2年SqlServer DBA经验
招聘ASP.NET(C#)的工程师
委托与事件
学习Silverlight第一天的种种问题
Silverlight中Image控件Stretch属性的四种值比较
条款05:了解C++默默编写并调用哪些函数
条款07:为多态基类声明虚析构函数
计算机操作系统之存储器管理
Copyright © 2011-2022 走看看