数据结构之二叉树
代码
public class Node
{
public int Data
{ get; set; }
public Node LeftNode
{ get; set; }
public Node RightNode
{ get; set; }
public void Append(Node node)
{
if (this.Data >= node.Data)
{
this.AppendLeft(node);
}
else
{
this.AppendRight(node);
}
}
public void AppendLeft(Node node)
{
if (this.LeftNode == null)
{
this.LeftNode = node;
}
else
{
this.LeftNode.Append(node);
}
}
public void AppendRight(Node node)
{
if (this.RightNode == null)
{
this.RightNode = node;
}
else
{
this.RightNode.Append(node);
}
}
public void ShowData()
{
Console.WriteLine(Data);
}
}
public class BiTree
{
public Node Root
{ get; set; }
public void Insert(Node subNode)
{
if (this.Root == null)
{
this.Root = subNode;
}
else
{
Root.Append(subNode);
}
}
public void MidTravel()
{
this.MidTravel(Root);
}
public void MidTravel(Node node)
{
if (node.LeftNode != null)
{
MidTravel(node.LeftNode);
}
Console.WriteLine(node.Data);
if (node.RightNode != null)
{
MidTravel(node.RightNode);
}
}
{
public int Data
{ get; set; }
public Node LeftNode
{ get; set; }
public Node RightNode
{ get; set; }
public void Append(Node node)
{
if (this.Data >= node.Data)
{
this.AppendLeft(node);
}
else
{
this.AppendRight(node);
}
}
public void AppendLeft(Node node)
{
if (this.LeftNode == null)
{
this.LeftNode = node;
}
else
{
this.LeftNode.Append(node);
}
}
public void AppendRight(Node node)
{
if (this.RightNode == null)
{
this.RightNode = node;
}
else
{
this.RightNode.Append(node);
}
}
public void ShowData()
{
Console.WriteLine(Data);
}
}
public class BiTree
{
public Node Root
{ get; set; }
public void Insert(Node subNode)
{
if (this.Root == null)
{
this.Root = subNode;
}
else
{
Root.Append(subNode);
}
}
public void MidTravel()
{
this.MidTravel(Root);
}
public void MidTravel(Node node)
{
if (node.LeftNode != null)
{
MidTravel(node.LeftNode);
}
Console.WriteLine(node.Data);
if (node.RightNode != null)
{
MidTravel(node.RightNode);
}
}