コード例 #1
0
        public void SequentialSearchSTTest2()
        {
            // testing indexer semantics
            SequentialSearchST <int, string> st = new SequentialSearchST <int, string>();

            st[99] = null;
            Assert.AreEqual(st.Count, 0);
            st[3] = "abc";
            st[2] = "cde";
            Assert.AreEqual(st[2], "cde");
            st[99] = null;
            st[2]  = null;
            Assert.AreEqual(st.Count, 1);
            st.Delete(3);
            Assert.AreEqual(st.Count, 0);
            try
            {
                string dummyS = st[99];
                Assert.IsNull(dummyS);
            }
            catch (Exception)
            {
                Assert.Fail("it is possible to look up an empty table");
            }

            st[4] = "def";
            Assert.IsNull(st[99]);
            Assert.IsNull(st[3]);
            Assert.IsNull(st[2]);
            st[3] = "101";
            int oldCount = st.Count;

            // delete non-existing key does nothing
            st.Delete(123456);
            Assert.AreEqual(oldCount, st.Count);

            SequentialSearchST <int, int> st2 = new SequentialSearchST <int, int>();

            st2[3]  = 22;
            st2[2]  = 33;
            st2[99] = 44;
            st2[2]  = 55;
            st2.Delete(3);
            Assert.IsFalse(st2.Contains(3));
            st2[3] = 101;
            Assert.AreEqual(101, st2[3]);
            st2.Delete(99);
            int dummy = st2[99]; // generate null exception
        }
コード例 #2
0
        public void Delete_Performance_Test()
        {
            int size = 9000;
            var st = new SequentialSearchST<int, string>();
            for (int i = 0; i < size; i++)
            {
                st.Put(i, i.ToString());
            }

            using (new PerformanceWatch(new CDriveLocationLogger(), "recursive"))
            {
                for (int i = 0; i < size; i++)
                {
                    st.Delete_Recursive(i);
                }
            }

            var st2 = new SequentialSearchST<int, string>();
            for (int i = 0; i < size; i++)
            {
                st2.Put(i, i.ToString());
            }

            using (new PerformanceWatch(new CDriveLocationLogger(), "non recursive"))
            {
                for (int i = 0; i < size; i++)
                {
                    st2.Delete(i);
                }
            }
        }
コード例 #3
0
        public void Delete_Olny_One_Node_List_Test()
        {
            var st = new SequentialSearchST<string, string>();
            st.Put("a", "0");

            st.Delete("a");
            Assert.AreEqual(0, st.Size());
        }
コード例 #4
0
ファイル: SearchTable.cs プロジェクト: siyuen/Algorithm
    public void SequentialTest()
    {
        SequentialSearchST <string, int> st = new SequentialSearchST <string, int>();

        for (int i = 0; i < v.Length; i++)
        {
            st.Put(k[i], v[i]);
        }
        st.DisPlay();
        st.Delete("b");
        st.DisPlay();
    }
コード例 #5
0
        public void SequentialSearchSTTest1()
        {
            // testing Get/Put semantics
            SequentialSearchST <string, int> st = new SequentialSearchST <string, int>();

            Assert.IsTrue(st.IsEmpty);

            // making sure we can delete all from ST
            st.Put("asd", 355);
            st.Put("dsd", 25);
            st.Put("esd", 15);
            st.Delete("esd");
            st.Delete("dsd");
            st.Delete("asd");
            Assert.IsTrue(st.IsEmpty);

            string[] keys = { "to", "be", "or", "not", "to", "be", "is", "quest" };
            for (int i = 0; i < keys.Length; i++)
            {
                st.Put(keys[i], i);
            }
            Assert.IsTrue(!(st.IsEmpty) && (st.Count == 6));

            string key = "not";

            Assert.IsTrue(st.Contains(key));
            st.Delete(key);
            Assert.IsFalse(st.Contains(key));
            Assert.IsNull(st.Get(key));

            object value = st.Get("is");

            Assert.AreEqual(6, value);

            value = st.Get("world");
            Assert.IsNull(value);

            int dummy = (int)st.Get("hello"); // generate null exception
        }
コード例 #6
0
        static void Main(string[] args)
        {
            ST <string, string> st;

            st = new SequentialSearchST <string, string>();
            st.Put("a", "1");
            st.Put("b", "2");
            int size = st.Size();

            st.Delete("a");
            size = st.Size();

            SortedST <string, string> sortedSt;

            sortedSt = new BST <string, string>();
            sortedSt.Put("r", "1");
            sortedSt.Put("b", "2");
            sortedSt.Put("h", "3");
            sortedSt.Put("t", "4");
            sortedSt.Delete("b");

            st = new SeparateChainingHashST <string, string>();
            st.Put("f", "1");
            st.Put("a", "3");
            st.Put("d", "4");
            st.Put("h", "9");
            st.Put("k", "8");
            var v = st.Get("h");

            st = new LinearProbingHashST <string, string>();
            st.Put("f", "1");
            st.Put("a", "3");
            st.Put("d", "4");
            st.Put("h", "9");
            st.Put("u", "8");
            v = st.Get("u");

            Console.ReadKey();
        }