用C#
本程序中將用到一棵已知的二叉樹如圖(二叉樹圖)所示
下面簡單介紹一下幾種算法和思路
先序遍歷
中序遍歷
後序遍歷
層次遍歷
附加整個解決方案代碼
二叉遍歷算法解決方案
using System;
using System
using System
namespace structure
{
class Program
{
二叉樹結點數據結構的定義#region 二叉樹結點數據結構的定義
//二叉樹結點數據結構包括數據域
class nodes<T>
{
T data;
nodes<T> Lnode
public T Data
{
set { data = value; }
get { return data; }
}
public nodes<T> LNode
{
set { Lnode = value; }
get { return Lnode; }
}
public nodes<T> RNode
{
set { Rnode = value; }
get { return Rnode; }
}
public nodes<T> PNode
{
set { Pnode = value; }
get { return Pnode; }
}
public nodes()
{ }
public nodes(T data)
{
this
}
}
#endregion
先序編歷二叉樹#region 先序編歷二叉樹
static void PreOrder<T>(nodes<T> rootNode)
{
if (rootNode != null)
{
Console
PreOrder<T>(rootNode
PreOrder<T>(rootNode
}
}
#endregion
構造一棵已知的二叉樹#region 構造一棵已知的二叉樹
static nodes<string> BinTree()
{
nodes<string>[] binTree = new nodes<string>[
//創建結點
binTree[
binTree[
binTree[
binTree[
binTree[
binTree[
binTree[
binTree[
//使用層次遍歷二叉樹的思想
binTree[
binTree[
binTree[
binTree[
binTree[
binTree[
binTree[
//返回二叉樹的根結點
return binTree[
}
#endregion
中序遍歷二叉樹#region 中序遍歷二叉樹
static void MidOrder<T>(nodes<T> rootNode)
{
if (rootNode != null)
{
MidOrder<T>(rootNode
Console
MidOrder<T>(rootNode
}
}
#endregion
後序遍歷二叉樹#region 後序遍歷二叉樹
static void AfterOrder<T>(nodes<T> rootNode)
{
if (rootNode != null)
{
AfterOrder<T>(rootNode
AfterOrder<T>(rootNode
Console
}
}
#endregion
層次遍歷二叉樹#region 層次遍歷二叉樹
static void LayerOrder<T>(nodes<T> rootNode)
{
nodes<T>[] Nodes = new nodes<T>[
int front =
int rear =
if (rootNode != null)
{
rear++;
Nodes[rear] = rootNode;
}
while (front != rear)
{
front++;
rootNode = Nodes[front];
Console
if (rootNode
{
rear++;
Nodes[rear] = rootNode
}
if (rootNode
{
rear++;
Nodes[rear] = rootNode
}
}
}
#endregion
測試的主方法#region 測試的主方法
static void Main(string[] args)
{
nodes<string> rootNode = BinTree();
Console
PreOrder<string>(rootNode);
Console
MidOrder<string>(rootNode);
Console
AfterOrder<string>(rootNode);
Console
LayerOrder<string>(rootNode);
Console
}
#endregion
}
}
From:http://tw.wingwit.com/Article/program/net/201311/12089.html