亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c#二叉樹如何實現動態數據集合

c#
小樊
85
2024-07-26 02:49:14
欄目: 編程語言

在C#中,可以通過定義一個二叉樹類來實現動態數據集合。以下是一個簡單的C#二叉樹實現示例:

using System;

public class Node
{
    public int value;
    public Node left;
    public Node right;

    public Node(int value)
    {
        this.value = value;
        this.left = null;
        this.right = null;
    }
}

public class BinaryTree
{
    public Node root;

    public BinaryTree()
    {
        this.root = null;
    }

    public void Insert(int value)
    {
        Node newNode = new Node(value);

        if (this.root == null)
        {
            this.root = newNode;
        }
        else
        {
            InsertRecursively(this.root, newNode);
        }
    }

    private void InsertRecursively(Node currentNode, Node newNode)
    {
        if (newNode.value < currentNode.value)
        {
            if (currentNode.left == null)
            {
                currentNode.left = newNode;
            }
            else
            {
                InsertRecursively(currentNode.left, newNode);
            }
        }
        else
        {
            if (currentNode.right == null)
            {
                currentNode.right = newNode;
            }
            else
            {
                InsertRecursively(currentNode.right, newNode);
            }
        }
    }

    public void TraverseInOrder(Node node)
    {
        if (node != null)
        {
            TraverseInOrder(node.left);
            Console.Write(node.value + " ");
            TraverseInOrder(node.right);
        }
    }

    public void TraversePreOrder(Node node)
    {
        if (node != null)
        {
            Console.Write(node.value + " ");
            TraversePreOrder(node.left);
            TraversePreOrder(node.right);
        }
    }

    public void TraversePostOrder(Node node)
    {
        if (node != null)
        {
            TraversePostOrder(node.left);
            TraversePostOrder(node.right);
            Console.Write(node.value + " ");
        }
    }

    public static void Main()
    {
        BinaryTree binaryTree = new BinaryTree();

        binaryTree.Insert(10);
        binaryTree.Insert(5);
        binaryTree.Insert(15);
        binaryTree.Insert(7);
        binaryTree.Insert(12);

        Console.WriteLine("In-order traversal:");
        binaryTree.TraverseInOrder(binaryTree.root);

        Console.WriteLine("\nPre-order traversal:");
        binaryTree.TraversePreOrder(binaryTree.root);

        Console.WriteLine("\nPost-order traversal:");
        binaryTree.TraversePostOrder(binaryTree.root);
    }
}

在以上示例中,定義了一個Node類來表示二叉樹的節點,以及一個BinaryTree類來實現二叉樹的操作。可以使用Insert方法來插入新節點,以及使用TraverseInOrderTraversePreOrderTraversePostOrder方法來遍歷二叉樹。可以根據需要擴展該實現,以滿足特定的需求。

0
社旗县| 鄯善县| 合阳县| 乐昌市| 泗水县| 碌曲县| 密云县| 治县。| 逊克县| 高州市| 大同市| 长武县| 普洱| 花莲县| 昌吉市| 天等县| 乾安县| 襄垣县| 荣成市| 拉孜县| 隆子县| 保山市| 梅河口市| 聊城市| 玉林市| 韶关市| 建始县| 宿州市| 喀喇沁旗| 花莲县| 万盛区| 阆中市| 雅江县| 鲁山县| 甘南县| 通化市| 获嘉县| 锦州市| 永胜县| 安图县| 故城县|