示例#1
0
 public static void Save(Stream stream, SuffixTree tree)
 {
     using (BinaryWriter writer = new BinaryWriter(stream))
     {
         Save(writer, tree);
     }
 }
示例#2
0
        static void Main(string[] args)
        {
            string r   = "10030000867545fe";
            long   lng = 0;

            if (!long.TryParse(r, NumberStyles.HexNumber, CultureInfo.CurrentCulture, out lng))
            {
                Console.WriteLine("Error");
            }

            lng.ToString();
            int i = 3;

            switch (i)
            {
            case 5:
                Console.WriteLine("hit");
                break;

            case 1:
                return;
            }

            SuffixTree t = new SuffixTree("xabaxac");

            t.BuildTree();
            t.Search("xa");
        }
示例#3
0
 public static void Save(BinaryWriter writer, SuffixTree tree)
 {
     writer.Write(SuffixTree.Edges.Count);
     writer.Write(SuffixTree.theString.Length);
     writer.Write(SuffixTree.theString);
     foreach (KeyValuePair <int, Edge> edgePair in SuffixTree.Edges)
     {
         writer.Write(edgePair.Key);
         writer.Write(edgePair.Value.endNode);
         writer.Write(edgePair.Value.startNode);
         writer.Write(edgePair.Value.indexOfFirstCharacter);
         writer.Write(edgePair.Value.indexOfLastCharacter);
     }
 }
示例#4
0
        public static SuffixTree LoadFromFile(BinaryReader reader)
        {
            SuffixTree tree;
            int        count           = reader.ReadInt32();
            int        theStringLength = reader.ReadInt32();
            string     theString       = reader.ReadString();

            tree = new SuffixTree(theString);
            for (int i = 0; i < count; i++)
            {
                int  key      = reader.ReadInt32();
                Edge readEdge = new Edge(-1);
                readEdge.endNode               = reader.ReadInt32();
                readEdge.startNode             = reader.ReadInt32();
                readEdge.indexOfFirstCharacter = reader.ReadInt32();
                readEdge.indexOfLastCharacter  = reader.ReadInt32();
                SuffixTree.Edges.Add(key, readEdge);
            }
            return(tree);
        }