Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] Implementazione algoritmo di pattern matching.

    Salve a tutti,
    devo implementare l'algoritmo di pattern matching di knuth morris pratt.
    Non ho compreso bene il metodo per generare il prefisso.
    Qualcuno sarebbe disposto a spiegarmelo in parole semplici?

    Grazie anticipatamente.

  2. #2
    Negli esempi di implementazione dell'algoritmo il pattern viene esaminato da una funzione che crea un prefisso per poter identificare gli spostamenti validi dello stesso pattern sul testo.
    Ho scritto diverse funzioni seguendo lo pseudocodice dell'algoritmo, senza però sortire gli effetti desiderati, infatti le mie funzioni restituiscono prefissi differenti da quelli di esempio (presupposti esatti).
    Negli esempi di implementazione con un pattern come "BBBA" si ottiene il prefisso 0 1 2 0.
    Questo perchè viene considerato il primo indice non [0] (da cui parte qualsiasi vettore/stringa) ma [1].
    Vi allego la funzione che ho scritto:
    Codice PHP:
    void prefix_creation(uint8_t *pattern
                               
    size_t pattern_length
                               
    int32_t *prefix)
    {
       
    int32_t kq;

       
    0;

       
    prefix[1] = 0;

       for (
    2<= pattern_lengthq++)
       {
          while ((
    0) && (pattern[1] != pattern[q]))
          {
             
    prefix[k];
          }
          if (
    pattern[1] == pattern[q])
          {
             
    k++;
          }
          
    prefix[q] = k;
       }

    Sperando in una soluzione, ringrazio anticipatamente per i possibili interventi.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.