Exemplo n.º 1
0
            public T _GetOrInit(int ind)
            {
                BinaryTree_Branch current = this;

                while (current.myindex != ind)
                {
                    BinaryTree_Branch next = ind > current.myindex ? current.right : current.left;

                    if (next == null)
                    {
                        next = new BinaryTree_Branch(ind);
                        if (ind > current.myindex)
                        {
                            current.right = next;
                        }
                        else
                        {
                            current.left = next;
                        }
                        return(next.data);
                    }

                    current = next;
                }

                return(current.data);
            }
Exemplo n.º 2
0
        public T GetOrInit(int ind)
        {
            if (root == null)
            {
                root = new BinaryTree_Branch(ind);
                return(root.data);
            }

            return(root._GetOrInit(ind));
        }
Exemplo n.º 3
0
            public T _Get(int ind)
            {
                BinaryTree_Branch current = this;

                while (current.myindex != ind)
                {
                    current = ind > current.myindex ? current.right : current.left;
                    if (current == null)
                    {
                        return(default(T));
                    }
                }

                return(current.data);
            }