溫馨提示×

c#二叉樹如何實現

c#
小樊
86
2024-07-26 02:31:13
欄目: 編程語言

在C#中實現二叉樹可以通過定義一個節(jié)點類來表示二叉樹的節(jié)點,然后定義一個二叉樹類來實現二叉樹的操作。以下是一個簡單的二叉樹實現示例:

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類表示二叉樹的節(jié)點,包含數據、左子節(jié)點和右子節(jié)點。然后定義了一個BinaryTree類來實現二叉樹的操作,包括插入節(jié)點和中序遍歷。在Main函數中,我們創(chuàng)建一個二叉樹并插入一些節(jié)點,然后進行中序遍歷輸出結果。

0