Advertisement
Guest User

AHO

a guest
Mar 27th, 2015
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # include <stdio.h>
  2. # include <string.h>
  3.  
  4. int min2(int a, int b)
  5. {
  6.     int c = (a <= b ? a: b);
  7.     return c;
  8. }
  9.  
  10. int min3(int a, int b, int d)
  11. {
  12.     int k = min2(a, b);
  13.     int c = (a < k ? a : k);
  14.     return c;
  15. }
  16.  
  17.  
  18. void rec(char* A, char* B, int* table, int i, int j, int n, int m)
  19. {
  20.     table[i][j] = (A[i] == B[j] ? min3(table[i - 1][j], table[i][j - 1], table[i - 1][j - 1]) : min2(table[i - 1][j], table[i][j - 1]));
  21.     j++;
  22.     if (j == m)
  23.     {
  24.         i++;
  25.         j == 1;
  26.     }
  27.     if (i == n)
  28.     {
  29.     }
  30.     else
  31.     {
  32.         rec(A, B, table, i, j, n, m);
  33.  
  34.     }
  35. }
  36.  
  37. void main()  //aho's algoritm
  38. {
  39.    
  40.     char a = '1', A = '2', B, b;
  41.     int i = 0;
  42.     /*
  43.     while (a != '\n' && a!=' ')
  44.     {
  45.         scanf_s("%c", &a);
  46.         //сшивание строчек А и а: в А записываем а
  47.     }*/
  48.  
  49.     const int n = 3;
  50.     const int m = 4;
  51.  
  52.  
  53.     int table[n][m] = {0};
  54.  
  55.     for (i = 0; i < m; i++)
  56.     {
  57.         table[0][i] = i + 1;
  58.     }
  59.  
  60.     for (i = 1; i < n; i++)
  61.     {
  62.         table[i][0] = i + 1;
  63.     }
  64.  
  65.     rec(&A, &B, &table[0][0], 1, 1, n, m);
  66.  
  67.  
  68.  
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement