Guest User

Untitled

a guest
May 24th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. void bepaalverschuivingen(char P[], int F[],int m, int verschuivingen[]){
  2.  
  3. /*
  4. BEPAAL SUFFIXFUNCTIE
  5. */
  6. int i,j;
  7. F[m-1]=0;
  8. j=m-1;
  9. i=m-2;
  10. while(i>=0){
  11. if(P[i]==P[j]){
  12. //if (i+1 < m && P[i+1]!=P[j+1])
  13. F[i]=j;
  14. //else F[i] = 0;
  15. i--;
  16. j--;
  17. }else if(j<m-1){
  18. j=m-1-F[j+1];
  19. }else {
  20. F[i]=0;
  21. i--;
  22. }
  23. }
  24.  
  25. /*
  26. BEPAAL VERSCHUIVINGEN
  27. */
  28. // initialiseren op m-s(1)
  29. for(int r=0;r<=m;r++) { verschuivingen[r] = m-F[0]; }
  30.  
  31. // waarden invullen
  32. for(int r=m-1; r>=0; r--) {
  33. int k = m - F[r];
  34. cout << k << endl;
  35. if (k + 1 - r < verschuivingen[k]) verschuivingen[k] = k + 1 - r;
  36. }
  37. }
Add Comment
Please, Sign In to add comment