温馨提示×

c#二叉树如何实现

c#
小樊
83
2024-07-26 02:31:13
栏目: 编程语言

在C#中实现二叉树可以通过定义一个节点类来表示二叉树的节点,然后定义一个二叉树类来实现二叉树的操作。以下是一个简单的二叉树实现示例:

using System;

class BinaryTreeNode
{
    public int data;
    public BinaryTreeNode left;
    public BinaryTreeNode right;

    public BinaryTreeNode(int value)
    {
        data = value;
        left = null;
        right = null;
    }
}

class BinaryTree
{
    public BinaryTreeNode root;

    public BinaryTree()
    {
        root = null;
    }

    public void Insert(int value)
    {
        root = InsertRec(root, value);
    }

    private BinaryTreeNode InsertRec(BinaryTreeNode root, int value)
    {
        if (root == null)
        {
            root = new BinaryTreeNode(value);
            return root;
        }

        if (value < root.data)
        {
            root.left = InsertRec(root.left, value);
        }
        else if (value > root.data)
        {
            root.right = InsertRec(root.right, value);
        }

        return root;
    }

    public void InOrderTraversal(BinaryTreeNode node)
    {
        if (node != null)
        {
            InOrderTraversal(node.left);
            Console.Write(node.data + " ");
            InOrderTraversal(node.right);
        }
    }
}

class Program
{
    static void Main()
    {
        BinaryTree tree = new BinaryTree();

        tree.Insert(5);
        tree.Insert(3);
        tree.Insert(7);
        tree.Insert(1);
        tree.Insert(4);

        Console.WriteLine("Inorder traversal of binary tree is: ");
        tree.InOrderTraversal(tree.root);
    }
}

在这个示例中,我们定义了一个BinaryTreeNode类表示二叉树的节点,包含数据、左子节点和右子节点。然后定义了一个BinaryTree类来实现二叉树的操作,包括插入节点和中序遍历。在Main函数中,我们创建一个二叉树并插入一些节点,然后进行中序遍历输出结果。

0