Пример #1
0
        public BalancedTree <T> CopyBalancedTree()
        {
            BalancedTree <T> newTree = new BalancedTree <T>();

            var nodesList = this.GetPreOrderList();

            foreach (var x in nodesList)
            {
                newTree.Root = newTree.Insert(newTree.Root, x);
            }

            return(newTree);
        }
Пример #2
0
        public BalancedTree <T> DeleteEvenElement()
        {
            if (typeof(T) != typeof(int))
            {
                throw new Exception("Unsupported operation");
            }

            var nodesList = new List <T>();

            ConvertToList(this.Root, ref nodesList);
            var toDelete = nodesList.Where(x => (int)Convert.ChangeType(x, typeof(int)) % 2 == 1);


            var newList = new BalancedTree <T>();

            foreach (var x in toDelete)
            {
                newList.Root = newList.Insert(newList.Root, x);
            }

            return(newList);
        }