Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void bepaalverschuivingen(char P[], int F[],int m, int verschuivingen[]){
- /*
- BEPAAL SUFFIXFUNCTIE
- */
- int i,j;
- F[m-1]=0;
- j=m-1;
- i=m-2;
- while(i>=0){
- if(P[i]==P[j]){
- //if (i+1 < m && P[i+1]!=P[j+1])
- F[i]=j;
- //else F[i] = 0;
- i--;
- j--;
- }else if(j<m-1){
- j=m-1-F[j+1];
- }else {
- F[i]=0;
- i--;
- }
- }
- /*
- BEPAAL VERSCHUIVINGEN
- */
- // initialiseren op m-s(1)
- for(int r=0;r<=m;r++) { verschuivingen[r] = m-F[0]; }
- // waarden invullen
- for(int r=m-1; r>=0; r--) {
- int k = m - F[r];
- cout << k << endl;
- if (k + 1 - r < verschuivingen[k]) verschuivingen[k] = k + 1 - r;
- }
- }
Add Comment
Please, Sign In to add comment