示例#1
0
        private Vertex GetAutoMove(Vertex vertex, char ch)
        {
            if (!vertex.AutoMoveExist(ch))
            {
                if (vertex.NextVertexExist(ch))
                {
                    vertex.AddAutoMove(vertex.NextVertex(ch));
                }
                else
                {
                    if (vertex == Root)
                    {
                        vertex.AddAutoMove(Root, ch);
                    }
                    else
                    {
                        vertex.AddAutoMove(GetAutoMove(GetSuffLink(vertex), ch), ch);
                    }
                }
            }

            return(vertex.AutoMove(ch));
        }