示例#1
0
        public void WeissTest()
        {
            tree = new SplayTree <int>();
            const int NUMS = 40000;
            const int GAP  = 307;

            for (int i = GAP; i != 0; i = (i + GAP) % NUMS)
            {
                tree.Add(i);
            }

            for (int i = 1; i < NUMS; i += 2)
            {
                tree.Remove(i);
            }

            Assert.AreEqual(2, tree.Minimum);
            Assert.AreEqual(NUMS - 2, tree.Maximum);

            for (int i = 2; i < NUMS; i += 2)
            {
                Assert.IsTrue(tree.Contains(i));
            }

            for (int i = 1; i < NUMS; i += 2)
            {
                Assert.IsFalse(tree.Contains(i));
            }
        }
示例#2
0
 public void RemoveFailTest()
 {
     tree = new SplayTree <int> {
         77, 85, 66, 56, 74, 94, 27, 61, 48, 57
     };
     Assert.IsFalse(tree.Remove(34));
 }
示例#3
0
 public void CountTest()
 {
     tree = new SplayTree <int>();
     tree.Add(5);
     Assert.AreEqual(1, tree.Count);
     tree.Add(3);
     Assert.AreEqual(2, tree.Count);
     tree.Remove(5);
     Assert.AreEqual(1, tree.Count);
     tree.Add(7);
     Assert.AreEqual(2, tree.Count);
     tree.Add(9);
     Assert.AreEqual(3, tree.Count);
     tree.Add(5);
     Assert.AreEqual(4, tree.Count);
     tree.Remove(7);
     Assert.AreEqual(3, tree.Count);
 }
示例#4
0
 public bool Remove(KeyValuePair <K, V> item)
 {
     return(tree.Remove(item));
 }