溫馨提示×

c#二叉樹的寬度優先搜索策略

c#
小樊
90
2024-07-26 02:47:19
欄目: 編程語言

在C#中,可以使用隊列來實現二叉樹的寬度優先搜索(BFS)策略。具體步驟如下:

  1. 創建一個隊列,并將根節點加入隊列中。
  2. 循環執行以下步驟,直到隊列為空: a. 從隊列中取出一個節點。 b. 如果該節點存在左子節點,則將左子節點加入隊列中。 c. 如果該節點存在右子節點,則將右子節點加入隊列中。 d. 處理當前節點的值(例如打印、保存等)。

下面是一個示例代碼,通過寬度優先搜索策略遍歷二叉樹:

using System;
using System.Collections.Generic;

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

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

public class BinaryTree {
    public Node root;

    public void BFS() {
        Queue<Node> queue = new Queue<Node>();
        queue.Enqueue(root);

        while (queue.Count > 0) {
            Node current = queue.Dequeue();
            Console.WriteLine(current.value);

            if (current.left != null) {
                queue.Enqueue(current.left);
            }
            if (current.right != null) {
                queue.Enqueue(current.right);
            }
        }
    }
}

public class Program {
    public static void Main() {
        BinaryTree tree = new BinaryTree();
        tree.root = new Node(1);
        tree.root.left = new Node(2);
        tree.root.right = new Node(3);
        tree.root.left.left = new Node(4);
        tree.root.left.right = new Node(5);

        tree.BFS();
    }
}

以上代碼演示了如何使用寬度優先搜索策略遍歷二叉樹,并輸出節點的值。您可以根據需要對處理節點的值進行修改。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女