private void TraverseTree(TTree tree)
 {
     if (tree == null)
     {
         return;
     }
     if (tree.left != null)
     {
         TraverseTree(tree.left);
     }
     if (tree.middle != null)
     {
         TraverseTree(tree.middle);
     }
     if (tree.right != null)
     {
         TraverseTree(tree.right);
     }
     Console.Write($"{tree._data}->");
 }
        private void InsertNode(TTree tree, TTree newNode)
        {
            if (newNode == null)
            {
                return;
            }

            var parent  = tree;
            var current = parent;

            while (current != null)
            {
                parent = current;
                if (parent._data > newNode._data)
                {
                    current = parent.left;
                }
                else if (parent._data < newNode._data)
                {
                    current = parent.right;
                }
                else if (parent._data == newNode._data)
                {
                    current = parent.middle;
                }
            }
            if (parent._data > newNode._data)
            {
                parent.left = newNode;
            }
            else if (parent._data < newNode._data)
            {
                parent.right = newNode;
            }
            else if (parent._data == newNode._data)
            {
                current = parent.middle;
            }
        }