Рефераты | Рефераты по информатике, программированию | Алгоритмы поиска в тексте | страница реферата 7 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • Служебная функция FindRightmost возвращает самое последнее вхождение образца P среди n первых символов строки S. Формат вызова функции BMSearch отличается от предыдущего. В параметре lp передается длина строки образца, сама же строка не нужна, так как таблица смещений однозначно описывает образец. Следует также учесть, что функция MakeBMTable динамически выделяет память для таблицы смещений, и после окончания использования функции BMSearch эту память необходимо освободить при помощи функции FreeMem. Следующий фрагмент кода иллюстрирует поиск всех вхождений образца P в строке S.

    MakeBMTable(BMT, P);

    PatPos := BMSearch(1, Length(P), S, BMT);

    while PatPos <> 0 do

    begin

      ...

      PatPos := BMSearch(PatPos + 1, Length(P), S, BMT);

    end;

    FreeMem(BMT);

    Дополнительным преимуществом данного варианта алгоритма является возможность организовать «регистронезависимый» поиск, т. е. поиск слова вне зависимости от регистра букв. Для этого достаточно в таблице смещений сопоставить одинаковые строки одним и тем же буквам разного регистра. Можно даже ввести поиск по шаблону, содержащему подстановочные символы. Ниже приводятся функции формирования таблицы смещений для шаблонов, в которых символ «?» соответствует любому символу используемого набора.

    function WCBeginsWith( const P, S : String) : Boolean;

    var

      i, lp : Integer;

    begin

      Result := False;

      lp := Length(P);

      if lp > Length(S) then Exit;

      for i := 1 to lp do

      if (P[i]<>S[i]) and (P[i]<>'?') and (S[i]<>'?') then Exit;

      Result := True;

    end;

    function WCFindRightmost( const S, P : String; 

      l : Integer) : Integer;

    var

      i, j, lp : Integer;


    Рекомендуем скачать другие рефераты по теме: шпоры по праву, реферат по физкультуре.



    Предыдущая страница реферата | 1  2  3  4  5  6  7  8  9  10 |




    Поделитесь этой записью или добавьте в закладки

       




    Категории:



    Разделы сайта




    •