Example #1
0
 public void TestCannotGetNullKey()
 {
     TST<int> tst = new TST<int>();
     tst.Put("bla", 1);
     Assert.IsTrue(tst.Contains("bla"));
     tst.Get(null);
 }
Example #2
0
        public void TestTST()
        {
            // build symbol table
            TST<string> st = new TST<string>();
            string[] a = new string[] { "by", "sea", "sells", "she", "shells", "shore", "the", };
            for (int i = 0; i < a.Length; i++) st.Put(a[i], i.ToString());

            // print results
            if (st.Size() < 100)
            {
                Debug.WriteLine("keys(\"\"):");
                foreach (string key in st.Keys())
                    Debug.WriteLine(key + " " + st.Get(key));
                Debug.WriteLine(Environment.NewLine);
            }

            Debug.WriteLine("longestPrefixOf(\"shellsort\"):");
            Debug.WriteLine(st.LongestPrefixOf("shellsort"));
            Debug.WriteLine(Environment.NewLine);

            Debug.WriteLine("longestPrefixOf(\"quicksort\"):");
            Debug.WriteLine(st.LongestPrefixOf("quicksort"));
            Debug.WriteLine(Environment.NewLine);

            Debug.WriteLine("keysWithPrefix(\"shor\"):");
            foreach (string s in st.KeysWithPrefix("shor"))
                Debug.WriteLine(s);
            Debug.WriteLine(Environment.NewLine);

            Debug.WriteLine("keysThatMatch(\".he.l.\"):");
            foreach (string s in st.KeysThatMatch(".he.l."))
                Debug.WriteLine(s);
        }
Example #3
0
 public void TestCannotGetEmptyStringKey()
 {
     TST<int> tst = new TST<int>();
     tst.Put("bla", 1);
     Assert.IsTrue(tst.Contains("bla"));
     tst.Get("");
 }
Example #4
0
        public void Run()
        {
            Console.WriteLine("Choose file:"); // Prompt
            Console.WriteLine("1 - shellsST.txt"); // Prompt
            Console.WriteLine("or quit"); // Prompt

            var fileNumber = Console.ReadLine();
            var fieName = string.Empty;
            switch (fileNumber)
            {
                case "1":
                    fieName = "shellsST.txt";
                    break;
                case "quit":
                    return;
                default:
                    return;
            }

            var @in = new In($"Files\\Strings\\{fieName}");
            var content = @in.ReadAllStrings();
            var st = new TST<Integer>();
            for (var i = 0; i< content.Length; i++)
            {
                st.Put(content[i], i);
            }

            // print results
            if (st.Size() < 100)
            {
                Console.WriteLine("keys(\"\"):");
                foreach (var key in st.Keys())
                {
                    Console.WriteLine($"{key} {st.Get(key).Value}");
                }
                Console.WriteLine();
            }

            Console.WriteLine("longestPrefixOf(\"shellsort\"):");
            Console.WriteLine(st.LongestPrefixOf("shellsort"));
            Console.WriteLine();

            Console.WriteLine("longestPrefixOf(\"shell\"):");
            Console.WriteLine(st.LongestPrefixOf("shell"));
            Console.WriteLine();

            Console.WriteLine("keysWithPrefix(\"shor\"):");
            foreach (var s in st.KeysWithPrefix("shor"))
                Console.WriteLine(s);
            Console.WriteLine();

            Console.WriteLine("keysThatMatch(\".he.l.\"):");
            foreach (var s in st.KeysThatMatch(".he.l."))
                Console.WriteLine(s);

            Console.ReadLine();
        }
Example #5
0
        void TrieSTTest()
        {
            var strArr = FileHandler.ReadFileAsStrArr("shellsST.txt");

            strArr.Show();
            //var st = new TrieST<int>();
            var st = new TST <int>();

            for (int i = 1; i < strArr.Length; i++)
            {
                //st.Put(strArr[i], i);
                st.Put(strArr[i], i);
            }
            //st.Put("bad", 100);
            Console.WriteLine(st.Get("she"));
            Console.WriteLine(st.Get("sells"));
            Console.WriteLine(st.Get("shore"));
            Console.WriteLine(st.Get("shore1"));
            Console.WriteLine(st.Get("zoo"));
            Console.ReadKey();
        }
Example #6
0
    void TSTStart()
    {
        string[] strs = txt.text.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
        // build symbol table from standard input
        TST <int> st = new TST <int>();

        for (int i = 0; i < strs.Length; i++)
        {
            string key = strs[i];
            st.Put(key, i);
        }

        // print results
        if (st.size() < 100)
        {
            print("keys(\"\"):");
            foreach (string key in st.keys())
            {
                print(key + " " + st.Get(key));
            }
        }

        print("longestPrefixOf(\"shellsort\"):");
        print(st.longestPrefixOf("shellsort"));


        print("longestPrefixOf(\"shell\"):");
        print(st.longestPrefixOf("shell"));


        print("keysWithPrefix(\"shor\"):");
        foreach (string s in st.keysWithPrefix("shor"))
        {
            print(s);
        }


        print("keysThatMatch(\".he.l.\"):");
        foreach (string s in st.keysThatMatch(".he.l."))
        {
            print(s);
        }
    }
Example #7
0
        public void Compress()
        {
            string    input = BinaryStdIn.ReadString();
            TST <int> st    = new TST <int>();

            for (int i = 0; i < R; i++)
            {
                st.Put("" + i, i);
            }
            int code = R + 1; //标记结束

            while (input.Length > 0)
            {
                string s = st.LongestPrefixOf(input); //匹配最长前缀
                BinaryStdOut.Write(st.Get(s), W);
                int t = s.Length;
                if (t < input.Length && code < L) //将s加入符号表
                {
                    st.Put(input.Substring(0, t + 1), code++);
                }
                input = input.Substring(t);
            }
            BinaryStdOut.Write(R, W);
        }
Example #8
0
        public void Run()
        {
            Console.WriteLine("Choose file:");     // Prompt
            Console.WriteLine("1 - shellsST.txt"); // Prompt
            Console.WriteLine("or quit");          // Prompt

            var fileNumber = Console.ReadLine();
            var fieName    = string.Empty;

            switch (fileNumber)
            {
            case "1":
                fieName = "shellsST.txt";
                break;

            case "quit":
                return;

            default:
                return;
            }


            var @in     = new In($"Files\\Strings\\{fieName}");
            var content = @in.ReadAllStrings();
            var st      = new TST <Integer>();

            for (var i = 0; i < content.Length; i++)
            {
                st.Put(content[i], i);
            }

            // print results
            if (st.Size() < 100)
            {
                Console.WriteLine("keys(\"\"):");
                foreach (var key in st.Keys())
                {
                    Console.WriteLine($"{key} {st.Get(key).Value}");
                }
                Console.WriteLine();
            }

            Console.WriteLine("longestPrefixOf(\"shellsort\"):");
            Console.WriteLine(st.LongestPrefixOf("shellsort"));
            Console.WriteLine();

            Console.WriteLine("longestPrefixOf(\"shell\"):");
            Console.WriteLine(st.LongestPrefixOf("shell"));
            Console.WriteLine();

            Console.WriteLine("keysWithPrefix(\"shor\"):");
            foreach (var s in st.KeysWithPrefix("shor"))
            {
                Console.WriteLine(s);
            }
            Console.WriteLine();

            Console.WriteLine("keysThatMatch(\".he.l.\"):");
            foreach (var s in st.KeysThatMatch(".he.l."))
            {
                Console.WriteLine(s);
            }


            Console.ReadLine();
        }
Example #9
0
 public void TestReadKeys()
 {
     TST<int> tst = new TST<int>();
     string[] keys = testKeys.Split(' ');
     for (int i = 0; i < keys.Length; i++)
     {
         tst.Put(keys[i], i);
     }
     for (int i = 0; i < keys.Length; i++)
     {
         Assert.IsTrue(tst.Contains(keys[i]));
         Assert.IsTrue(tst.Get(keys[i]) == i);
     }
 }
Example #10
0
 public void TestKeyHasToHaveValue()
 {
     TST<int> tst = new TST<int>();
     tst.Put("seashells", 1);
     Assert.IsTrue(tst.Contains("seashells"));
     // "sea" is only a prefix of the key
     tst.Get("sea");
 }