C#语言的二叉树排序代码
二叉树排序是一种基于二叉树数据结构的排序算法。它的基本思想是将待排序的元素插入到一棵二叉树中,然后按照中序遍历的顺序输出树中的元素,即可得到有序序列。
下面是C#语言的二叉树排序代码:
using System;
class Node
{
public int value;
public Node left;
public Node right;
public Node(int value)
{
this.value = value;
left = null;
right = null;
}
public void Insert(int value)
{
if (value < this.value)
{
if (left == null)
{
left = new Node(value);
}
else
{
left.Insert(value);
}
}
else
{
if (right == null)
{
right = new Node(value);
}
else
{
right.Insert(value);
}
}
}
public void InOrderTraversal()
{
if (left != null)
{
left.InOrderTraversal();
}
Console.Write(value + " ");
if (right != null)
{
right.InOrderTraversal();
}
}
}
class BinaryTree
{
private Node root;
public BinaryTree()
{
root = null;
}
public void Insert(int value)
{
if (root == null)
{
root = new Node(value);
}
else
{
root.Insert(value);
}
}
public void InOrderTraversal()
{
if (root != null)
{
root.InOrderTraversal();
}
}
}
class Program
{
static void Main()
{
int[] arr = { 5, 2, 8, 1, 7, 3, 6, 4 };
BinaryTree tree = new BinaryTree();
foreach (int i in arr)
{
tree.Insert(i);
}
tree.InOrderTraversal();
}
}
在这个例子中,我们定义了一个Node类来表示二叉树的节点,其中包含一个value成员变量表示节点的值,以及left和right成员变量表示左子树和右子树。
我们还定义了一个BinaryTree类来表示整个二叉树,其中包含一个root成员变量表示根节点。Insert方法用来将一个值插入到二叉树中,InOrderTraversal方法用来按照中序遍历的顺序输出树中的元素。
在Main方法中,我们创建了一个整型数组arr来表示待排序的元素,然后将它们插入到一个新的二叉树中,并按照中序遍历的顺序输出树中的元素,即可得到有序序列。
原文地址: https://www.cveoy.top/t/topic/pXv 著作权归作者所有。请勿转载和采集!