C#バイナリ検索ツリーで特定のノードを検索

シャドウアブサン

BSTをいじくり回していて、私はそれらについてかなり良い考えを持っていますが、BST内の特定のノードを検索して、それが存在するかどうかを教えてもらいたいと思います。私はBSTで文字列を使用しており、すべてがうまく機能しているようですが、このFindメソッドを理解できません。誰かが私が間違っていることとそれを修正する方法を教えてくれるなら、これはありがたいです。

class Node
    {          
        public string number;
        public string data;
        public Node left;
        public Node right;
        public string Content;
        public Node(string data)
        {
            this.data = data;
        }
    }
    class BinarySearchTree
    { 
        public Node root, current;
        public BinarySearchTree()
        {
            this.root = null;
        }

        public void AddNode(string a) // code to insert nodes to the binary search tree
        {
            Node newNode = new Node(a); //create a new node
            if (root == null) // if the tree is empty new node will be the root node
                root = newNode;
            else
            {
                Node previous;
                current = root;

                while (current != null)
                {
                    previous = current;

                    if (a.CompareTo(current.data) < 1) //if the new node is less than the            current node
                    {
                        current = current.left;
                        if (current == null)
                            previous.left = newNode;
                    }                         
                    else //if the new node is greater than the current node
                    {
                        current = current.right;

                        if (current == null)
                            previous.right = newNode;
                    }
                }
            }
        }

        public string FindNode(Node node, string s)
        {
            if (root == null)
                return Output = "not found";
            else if (s.CompareTo(root.data) < 1)
                return FindNode(root.left, s);
            else if (s.CompareTo(root.data) > 1)
                return FindNode(root.right, s);

            return Output = "found";
        }

        string SearchResult = "";
        static string Output = "";
        public string Display(Node rootNode)
        {
            if (rootNode != null)
            {
                Display(rootNode.left);
                Output += rootNode.data;
                Display(rootNode.right);
            }
            return Output;
        }           
    }

    private void btnExecute_Click(object sender, EventArgs e)
    {
        BinarySearchTree btree = new BinarySearchTree();
        btree.AddNode("D");
        btree.AddNode("B");
        btree.AddNode("F");
        btree.AddNode("E");
        btree.AddNode("A");
        btree.AddNode("G");
        btree.AddNode("C");
        string target;
        txtOutput.Text += "The sorted values of the Binary Search Tree are: \r\n \r\n";
        txtOutput.Text += btree.Display(btree.root);
        txtOutput.Text += btree.FindNode(btree.root, "A");

    }
FireAlkazar

以下に変更してみます:
1.のCompareTo0ではない1と方法を、そうa.CompareTo(current.data) < 1でなければなりませんa.CompareTo(current.data) < 0
を参照してくださいドキュメントIComparable.CompareTo方法
あなたのように2FindNode再帰呼び出しで、変更rootへのnode使用方法

public string FindNode(Node node, string s)
{
    if (node == null)
        return Output = "not found";
    else if (s.CompareTo(node.data) < 0)
        return FindNode(node.left, s);
    else if (s.CompareTo(node.data) > 0)
        return FindNode(node.right, s);

    return Output = "found";
}

がんばろう!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonのバイナリ検索ツリーでノードを数える

分類Dev

C ++バイナリ検索ツリーからノードを削除します

分類Dev

Javaを使用したバイナリ検索ツリーのノードの削除

分類Dev

Javaのバイナリ検索ツリーからノードを削除する

分類Dev

Pythonのバイナリ検索ツリーでノードを削除しますか?

分類Dev

再帰を使用して、バイナリツリーで特定の文字列を保持するノードを検索します

分類Dev

C#でのバイナリ検索

分類Dev

バイナリ検索ツリーなどのバイナリ検索ツリー内のノードへのパス

分類Dev

バイナリ検索ツリーをJavaで完全なバイナリ検索ツリーにする方法は?

分類Dev

C ++でのノードの追加および削除機能を使用したテンプレートバイナリ検索ツリーの実装

分類Dev

キーよりも小さいバイナリ検索ツリーのノード数をカウント

分類Dev

Bツリーでのバイナリ検索の使用

分類Dev

任意のデータ型のバイナリ検索ツリーで値を検索します

分類Dev

C ++でバイナリ検索ツリーを作成できません

分類Dev

C#コンソールでバイナリ検索ツリーを表示する

分類Dev

Cのバイナリ検索ツリーにchar *を挿入します

分類Dev

Swift バイナリ検索 ツリー検索

分類Dev

C#でのバイナリ検索ツリーではなく、完全なバイナリツリーの実装

分類Dev

Pythonで各バイナリツリーレベルの要素を検索する

分類Dev

ツリー構造の.txtファイルでノードを検索する

分類Dev

Java バイナリ検索ワード ツリー

分類Dev

C#で100万レコードのCSVを検索するためのバイナリ検索の代替手段?

分類Dev

Python 3:バイナリ検索ツリーがノードの設定に失敗しました

分類Dev

ノードクラスを使用せずにバイナリ検索ツリーに追加する方法

分類Dev

2番目に小さいノードを見つけるJavaバイナリ検索ツリー

分類Dev

バイナリ検索ツリーの重複エントリ

分類Dev

バイナリ検索とターナリ検索の比較

分類Dev

挿入操作のバイナリ検索ツリーコードの問題

分類Dev

値が見つからない場合、C検索のバイナリ検索ツリーはメッセージを返すことができません

Related 関連記事

  1. 1

    Pythonのバイナリ検索ツリーでノードを数える

  2. 2

    C ++バイナリ検索ツリーからノードを削除します

  3. 3

    Javaを使用したバイナリ検索ツリーのノードの削除

  4. 4

    Javaのバイナリ検索ツリーからノードを削除する

  5. 5

    Pythonのバイナリ検索ツリーでノードを削除しますか?

  6. 6

    再帰を使用して、バイナリツリーで特定の文字列を保持するノードを検索します

  7. 7

    C#でのバイナリ検索

  8. 8

    バイナリ検索ツリーなどのバイナリ検索ツリー内のノードへのパス

  9. 9

    バイナリ検索ツリーをJavaで完全なバイナリ検索ツリーにする方法は?

  10. 10

    C ++でのノードの追加および削除機能を使用したテンプレートバイナリ検索ツリーの実装

  11. 11

    キーよりも小さいバイナリ検索ツリーのノード数をカウント

  12. 12

    Bツリーでのバイナリ検索の使用

  13. 13

    任意のデータ型のバイナリ検索ツリーで値を検索します

  14. 14

    C ++でバイナリ検索ツリーを作成できません

  15. 15

    C#コンソールでバイナリ検索ツリーを表示する

  16. 16

    Cのバイナリ検索ツリーにchar *を挿入します

  17. 17

    Swift バイナリ検索 ツリー検索

  18. 18

    C#でのバイナリ検索ツリーではなく、完全なバイナリツリーの実装

  19. 19

    Pythonで各バイナリツリーレベルの要素を検索する

  20. 20

    ツリー構造の.txtファイルでノードを検索する

  21. 21

    Java バイナリ検索ワード ツリー

  22. 22

    C#で100万レコードのCSVを検索するためのバイナリ検索の代替手段?

  23. 23

    Python 3:バイナリ検索ツリーがノードの設定に失敗しました

  24. 24

    ノードクラスを使用せずにバイナリ検索ツリーに追加する方法

  25. 25

    2番目に小さいノードを見つけるJavaバイナリ検索ツリー

  26. 26

    バイナリ検索ツリーの重複エントリ

  27. 27

    バイナリ検索とターナリ検索の比較

  28. 28

    挿入操作のバイナリ検索ツリーコードの問題

  29. 29

    値が見つからない場合、C検索のバイナリ検索ツリーはメッセージを返すことができません

ホットタグ

アーカイブ