コード例 #1
0
 public static void Main()
 {
     // SuffixTree.Create("abcabxabcd");
     // SuffixTree.Create("abcdefabxybcdmnabcdex");
     // SuffixTree.Create("abcadak");
     // SuffixTree.Create("dedododeeodo");
     // SuffixTree.Create("ooooooooo");
     // SuffixTree.Create("mississippi");
     SuffixTree.Create("AABAAAB");
 }
コード例 #2
0
        private static void CreateSuffixTree(string text, TraceLevel traceLevel)
        {
            if (string.IsNullOrEmpty(text) || text.Length <= 1)
            {
                throw new ArgumentException("text cannot be null, empty, or have a length less than 1");
            }

            Stopwatch stopWatch = new Stopwatch();

            Console.Write(".");

            if (traceLevel >= TraceLevel.Lite)
            {
                Debug.WriteLine(""); Debug.WriteLine(""); Debug.WriteLine("");
                Debug.WriteLine("================================================================================================= ");
                Debug.WriteLine(text); Debug.WriteLine(""); Debug.WriteLine("text length: {0}", text.Length);
            }
            else if (traceLevel >= TraceLevel.BuildTime)
            {
                Debug.WriteLine("================================================================================================= ");
                Debug.WriteLine(""); Debug.WriteLine("text length: {0}", text.Length);
            }

            stopWatch.Start();
            var suffixTree = SuffixTree.Create <SortedList>(text);

            stopWatch.Stop();

            if (traceLevel >= TraceLevel.BuildTime)
            {
                Debug.WriteLine("total milliseconds: {0}", stopWatch.ElapsedMilliseconds); Debug.WriteLine("");
            }

            // diagnose..
            var diag = SuffixTreeDiagnostic.create(suffixTree);

            diag.display(traceLevel);
        }