Свойство глубины не устанавливает правильное значение в BST - PullRequest
0 голосов
/ 25 февраля 2011

Я хотел добавить глубину во всех узлах в бинарном дереве поиска.Это мой метод Add.Но я вижу, что мое свойство глубины устанавливает произвольное значение.Может кто-нибудь, пожалуйста, дайте мне знать, что я делаю ошибку.

public void Add(int data)
    {
        BNode current = root;
        int depth = 0;           
        while (true)
        {
            if (data < (int)current.Data && current.Left != null)
            {
                depth = depth + 1;
                current = current.Left;
            }
            else if (data < (int)current.Data && current.Left == null)
            {
                depth = depth + 1;
                current.Left = new BNode(data);
                current.Left.Parent = current;
                current.Depth = depth;
                break;
            }
            else if (data > (int)current.Data && current.Right != null)
            {
                depth = depth + 1;
               current = current.Right;
            }
            else if (data > (int)current.Data && current.Right == null)
            {
                depth = depth + 1;
                current.Right = new BNode(data);
                current.Right.Parent = current;
                current.Right.Depth = depth;
                break;
            }
        }
    }

1 Ответ

0 голосов
/ 25 февраля 2011

Извините всех, я обнаружил свою ошибку.

Вместо

current.Depth = depth; 

должно быть

current.Left.Depth = depth;
...