ホームページ >バックエンド開発 >C#.Net チュートリアル >C# を使用して二分探索ツリー アルゴリズムを作成する方法
C# を使用して二分探索ツリー アルゴリズムを作成する方法。具体的なコード例が必要です。
二分探索ツリー (BST) は一般的に使用されるデータ構造であり、次のような特徴があります。高速な挿入、検索、削除操作。 C# では、オブジェクト指向アプローチを使用して二分探索ツリー アルゴリズムを作成できます。
まず、二分探索ツリー ノードのクラスを定義する必要があります。このクラスには、1 つの値と左右の子ノードへの 2 つのポインターが含まれます。コードは次のとおりです。
public class BSTNode { public int Value { get; set; } public BSTNode Left { get; set; } public BSTNode Right { get; set; } public BSTNode(int value) { Value = value; Left = null; Right = null; } }
次に、挿入、検索、削除などの操作のメソッドが含まれるバイナリ検索ツリー クラスを定義できます。コードは次のとおりです。
public class BinarySearchTree { private BSTNode root; public BinarySearchTree() { root = null; } public void Insert(int value) { root = InsertNode(root, value); } private BSTNode InsertNode(BSTNode node, int value) { if (node == null) { node = new BSTNode(value); } else if (value < node.Value) { node.Left = InsertNode(node.Left, value); } else if (value > node.Value) { node.Right = InsertNode(node.Right, value); } return node; } public bool Search(int value) { return SearchNode(root, value); } private bool SearchNode(BSTNode node, int value) { if (node == null) { return false; } else if (value < node.Value) { return SearchNode(node.Left, value); } else if (value > node.Value) { return SearchNode(node.Right, value); } else { return true; } } public void Delete(int value) { root = DeleteNode(root, value); } private BSTNode DeleteNode(BSTNode node, int value) { if (node == null) { return node; } else if (value < node.Value) { node.Left = DeleteNode(node.Left, value); } else if (value > node.Value) { node.Right = DeleteNode(node.Right, value); } else { if (node.Left == null && node.Right == null) { node = null; } else if (node.Left == null) { node = node.Right; } else if (node.Right == null) { node = node.Left; } else { BSTNode minNode = FindMinNode(node.Right); node.Value = minNode.Value; node.Right = DeleteNode(node.Right, minNode.Value); } } return node; } private BSTNode FindMinNode(BSTNode node) { while (node.Left != null) { node = node.Left; } return node; } }
上記は、C# を使用して二分探索ツリー アルゴリズムを作成する詳細なコード例です。 BSTNodeクラスとBinarySearchTreeクラスを作成することで、挿入、検索、削除などの操作を簡単に行うことができます。これらの操作の時間計算量は O(h) です。ここで、h は二分探索木の高さです。
サンプル コードは次のとおりです。
BinarySearchTree bst = new BinarySearchTree(); bst.Insert(5); bst.Insert(3); bst.Insert(8); bst.Insert(2); bst.Insert(4); bst.Insert(7); bst.Insert(9); Console.WriteLine(bst.Search(4)); // 输出:True Console.WriteLine(bst.Search(6)); // 输出:False bst.Delete(8); Console.WriteLine(bst.Search(8)); // 输出:False
上記のコードを通じて、二分探索ツリーの挿入、検索、および削除の操作が非常にシンプルかつ効率的であり、適切であることがわかります。多くの実用的なアプリケーション向けのアプリケーション シナリオ。この記事のコード例が、C# を理解して使用して二分探索ツリー アルゴリズムを作成するのに役立つことを願っています。
以上がC# を使用して二分探索ツリー アルゴリズムを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。